WormPit类中包括了Worm和WormFood。贪吃蛇将会在画面中移动寻找食物。如果它吃到食物它将会长一格。如果它碰到边界或者吃到自己将Game Over。
下面介绍几个重要的函数:
重绘屏幕上的所有元素
// 更新贪吃蛇的状态 myWorm.update(g); // 头部的位置和食物的位置重合就吃到食物 if (myFood.isAt(myWorm.getX(), myWorm.getY())) { myWorm.eat(); score += level; foodEaten++; if (foodEaten > (level << 1)) { /* 增加游戏难度 */ forceRedraw = true; foodEaten = 0; level++; if (tonePlayer != null) { try { tonePlayer.setMediaTime(0); tonePlayer.start(); } catch (MediaException me) { } } } else { if (audioPlayer != null) { try { Manager.playTone(69, 50, 100); // Play audio } catch (MediaException me) { } } } g.setColor(WormPit.ERASE_COLOUR); // 填充长方形(三个字的宽度) g.fillRect((width - (SCORE_CHAR_WIDTH * 3))-START_POS, height-START_POS, (SCORE_CHAR_WIDTH * 3), SCORE_CHAR_HEIGHT); g.setColor(WormPit.DRAW_COLOUR); // 显示新的分数 g.drawString("" + score, width - (SCORE_CHAR_WIDTH * 3) - START_POS, height - START_POS, Graphics.TOP|Graphics.LEFT); // 重新生成食物 myFood.regenerate(); int x = myFood.getX(); int y = myFood.getY(); while (myWorm.contains(x, y)) { // 如果食物和贪吃蛇的身体重复就重新生成 myFood.regenerate(); x = myFood.getX(); y = myFood.getY(); } } // 画出食物 myFood.paint(g); } catch (WormException se) { gameOver = true; } |
主循环体:
while (!gameDestroyed) { // 游戏不终止就一直循环执行 try { synchronized (myWorm) { // 多线程中要进行同步 // 如果游戏结束 if (gameOver) { if (WormScore.getHighScore(level) < score) { // 把最高分保存 WormScore.setHighScore(level, score, "me"); } if ((audioPlayer != null) && (audioPlayer.getState() == Player.STARTED)) { try { audioPlayer.stop(); Manager.playTone(60, 400, 100); } catch (Exception ex) { } } // 重绘 repaint(); // 游戏结束时等待用户重新开始 myWorm.wait(); } else if (gamePaused) { //重绘 repaint(); // 游戏暂停时等待用户重新开始 myWorm.wait(); } else { // 游戏继续 myWorm.moveOnUpdate(); repaint(); // 这里的等待时间决定了游戏难度!!! myWorm.wait(DEFAULT_WAIT-(level*40)); } } } catch (java.lang.InterruptedException ie) { } } |
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>