在下面代码中使贪吃蛇吃到食物时的音效只播放一次指出需要增加或者删改的地方package game;import javaxsoundsampled;import javaxswing;import javaawt;import javaawteventKeyEvent;import javaawteventKeyListener;import javaioFile;import javaioIOE
需要增加一个变量来记录食物是否已经被吃掉,如果已经被吃掉,则不再播放音效。可以在初始化食物时将该变量置为 false,表示食物未被吃掉。在判断是否吃到食物时,如果食物未被吃掉,则播放音效,并将该变量置为 true。修改后的代码如下:
// 初始化食物和标记变量 private boolean isFoodEaten = false; private void initFood() { Random random = new Random(); int x = random.nextInt((WIDTH-2GRID_SIZE) / GRID_SIZE); int y = random.nextInt((HEIGHT-2GRID_SIZE) / GRID_SIZE); food = new Point(x+1, y+1); isFoodEaten = false; }
// 判断是否吃到食物 if (head.equals(food)) { // 如果食物未被吃掉,则播放音效 if (!isFoodEaten) { Random random = new Random(); int index = random.nextInt(8); String filePath = ""; switch (index) { // ... } playMusic(filePath); isFoodEaten = true; } // ...
原文地址: https://www.cveoy.top/t/topic/fL0A 著作权归作者所有。请勿转载和采集!