2014-02-22 84 views
1

我找不到像這樣的其他問題,但如果有人發現像這樣的問題,隨時將其標記爲重複。如何保留一些圖紙而不是其他人?

我想知道如何只保留一些是屏幕上的圖紙。作爲一些序言,我正在嘗試製作一個像程序一樣的小繪畫(我正在用Leap Motion做這個)。我希望它如果Z如果小於-80則繪製一條留在屏幕上的線(就像你點擊鼠標一樣),如果不是,那麼不要畫一條線,只顯示一個'光標'(一個小白點)。我用來繪製東西到屏幕上的方法如下:

protected void render() { 
    BufferStrategy bStrategy = getBufferStrategy(); 
    if (bStrategy == null) { 
     createBufferStrategy(3); 
     return; 
    } 
    Graphics graphics = bStrategy.getDrawGraphics(); 
    { 
     Drawing.getInstance(graphics).drawBackground(Color.BLACK, getWidth(), getHeight()); 
     { 
      List<Coordinate> list = Drawing.getInstance(graphics).drawColorBox(3, 25, 25, 0, 50, Color.DARK_GRAY, Color.BLUE); 
      List<Coordinate> listII = Drawing.getInstance(graphics).drawColorBox(3, 25, 25, 0, 25, Color.DARK_GRAY, Color.RED); 
      Drawing.getInstance(graphics).drawDot(loc.getX(), loc.getY(), 5, 5, currentColor); 
      getCollision(list, Color.BLUE, graphics); 
      getCollision(listII, Color.RED, graphics); 
     } 
    } 
    graphics.dispose(); 
    bStrategy.show(); 
} 

繪圖是另一個類,只是處理項目繪製到屏幕上。如果你需要課堂問問。

摘要: 我想繪製一些行到屏幕上,但不是其他人,並希望能夠控制哪些繪製和不繪製。

如果這是沒有意義的只是說,我會嘗試改寫它。任何幫助表示讚賞。 〜瑞安

回答

1

我會建議作出Line類的isVisible實例變量。跟蹤ArrayList<Line>中的所有行,然後使用isVisible變量打開或關閉它們。

+0

我很新的這一點,所以我怎麼會去這樣做,如果我通過一組點繪製線條。我之前做的過程是用我得到的x和y創建一個矩形,例如寬度爲5。然後不刷新背景,以保持呈現。對不起,如果這是一個非常基本的問題,但現在我感到無能爲力。 – ZXSkelobrine

+0

我猜,每個'Line'對象都會包含開始點和結束點的數據。但我不完全明白你在這裏問的問題。另外,我不相信我熟悉你使用的圖形庫。 –

+0

雖然很奇怪,但我已經知道了。我正在使用Leap Motion(一種非常棒的技術),用XYZ創建一個Vector。然後,我可以做任何我想要的與這些。我創建了兩個線類,Line和HiddenLine。 HiddenLine會顯示一個點,然後移除它後面的點,而Line將只顯示所有的點。謝謝您的幫助! – ZXSkelobrine

相關問題