對不起,如果標題有點模糊。無論如何,我正在使用Java製作平臺遊戲,並且我一直在試圖創建一個壓力板觸發式分配器,用於射中毒飛鏢。遊戲幾乎分成了一個網格系統,每個網格都是網格上的一個點。到目前爲止,我已經做到這樣,當壓力板被激活時,它看起來好像被按下了。我也可以把它畫到屏幕上,但它不會移動或任何東西。這是我用它繪製到屏幕上的代碼:不知道如何畫「毒鏢」
public void drawDart(Graphics g) {
if(Component.isPressed) {
for(int x = 0; x < block[0].length; x++) {
for (int y=0; y < block[0].length; y++) {
if(x == 91 && y == 35) {
block[x][y] = new Block(new Rectangle(x * Tile.tileSize, y * Tile.tileSize, Tile.tileSize, Tile.tileSize), Tile.poisonDart);
}
}
}
}
}
不幸的是,當我踩壓盤這段代碼,飛鏢繪製,但不會移動。我曾嘗試過使用x ++,但根本不移動飛鏢。
另一個問題是,我希望飛鏢看起來像受重力影響,當遊戲分裂成大型網格系統時很難做到。無論哪種方式,你們覺得呢?
主持人編輯(從OP評論移動):
block[x][y] = new Block(new Rectangle(x * Tile.tileSize, y * Tile.tileSize,
Tile.tileSize, Tile.tileSize), Tile.poisonDart);
這裏沒有足夠的上下文來理解這個問題。請閱讀[常見問題]和[問]關於如何編寫好的SO問題的提示。 –
您看起來確實沒有在您向我們展示的代碼中繪製任何內容?要生成動畫,您需要爲每次重畫(框架)繪製不同位置的東西,而不僅僅是在重繪方法內的循環中繪製東西。 – DNA
block [x] [y] = new Block(new Rectangle(x * Tile.tileSize ,y * Tile.tileSize,Tile.tileSize,Tile.tileSize),Tile.poisonDart);這是繪製飛鏢的代碼行,對此抱歉,我忘了解釋它。 = /我不知道我怎樣才能改變立場,雖然是問題,因爲簡單地減少或增加'x'似乎不起作用。 – Connor