在判断是否吃到食物的代码块中,加一个判断条件,当食物被吃掉时,播放音效前先检查当前音效是否正在播放,如果没有,则播放音效并将其标记为正在播放,否则不播放音效。具体实现可以添加一个布尔类型的变量,用于记录当前音效是否正在播放。代码示例如下:

// 判断是否吃到食物 if (head.equals(food)) { // 判断当前音效是否正在播放 if (!isPlaying) { // 随机播放音效 Random random = new Random(); int index = random.nextInt(8); String filePath = ""; switch (index) { case 0: filePath = "C:\Users\彭 杨\IdeaProjects\untitled\src\snake\emmmm__(van)_1.WAV"; break; // ... } // 播放音效 playMusic(filePath); // 将当前音效标记为正在播放 isPlaying = true; } // 更新贪吃蛇和食物 snake.add(0, head); initFood(); // 如果吃到食物,则将 score 的值加上 10 score += 10; } else { snake.add(0, head); snake.remove(snake.size() - 1); // 将当前音效标记为未播放 isPlaying = false;

在下面代码中使贪吃蛇吃到食物时的音效只播放一次package game;import javaxsoundsampled;import javaxswing;import javaawt;import javaawteventKeyEvent;import javaawteventKeyListener;import javaioFile;import javaioIOException;impo

原文地址: https://www.cveoy.top/t/topic/fLZs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录