2017-06-16 72 views
0

全部。 我更新編程,但任性。 我有一個類的任務,我們必須使用「繪製」方法(我知道它只是一個函數,但在Java中),我需要留下一個「蹤跡」。我已經知道如何留下蹤跡,但我想留下特定的蹤跡(主要是從我角色的鞋子上開始打印)。所以我決定寫一個單獨的繪圖方法,但我只能使用一個。有什麼方法可以寫另一種繪製方法嗎?如何有相同類型的多重方法? (「處理」編程)

如果沒有,是否有辦法在我移動他的男人身後留下「痕跡」?

我的意思是:使用繪製方法,我創建一個隨鼠標移動的框。繪圖命令一遍又一遍地循環,每秒多次。然而,它並沒有消除之前的平局,所以在他們被抽出時留下了一個左側的盒子。我只想有一個特定形狀的痕跡,我可以定義一個。

謝謝大家。

+1

你的問題有點抽象。你可以發佈一些代碼嗎? – shmosel

+0

請發佈您的「2種方法」,也許我們可以將它們合併爲一個 – CodingNinja

回答

1

你有三個選擇:

選項1:只要不清除舊的框架,通過不調用background()功能每次draw()被調用。這會使你的舊圖畫留下來,看起來像一條線索。這將適用於像圈子這樣的簡單內容,但如果您希望自己的足跡與繪畫不同,或者隨着時間的推移淡化某些內容,則無效。

選項2:將您的路徑存儲在某種數據結構中。例如,您可以使用包含PVector實例的ArrayList。然後每幀通過調用background()清除舊幀,然後迭代數據結構以繪製軌跡。然後添加並從該數據結構中移除以隨時間改變軌跡。

選項3:繪製您的足跡到屏幕外緩衝區。提示:在the reference中查找createGraphics()函數。這與您正在嘗試執行的操作類似,但是您不需要第二個draw()函數就可以將該線索繪製到緩衝區中。然後,每幀,你將緩衝區繪製到屏幕上,最後將對象繪製到屏幕上。

+0

令人驚歎!我猜它不像使用第二個繪製方法那麼簡單?我不熟悉數組... –

+0

@BrentonK不,它不像使用第二個draw()方法那麼簡單。我明白你想要做什麼。看到我剛剛添加到我的答案中的第三個選項,我認爲這更接近您正在尋找的內容。 –

+0

您還可以爲背景提供一些快捷方式,例如'背景(50,100)'。它會達到隨着時間推移淡出的效果 –

相關問題