JAVA课设截稿.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA程序设计B 课程设计 姓 名: 学 号: 教 师: 图2-1游戏主题界面设计效果 2.2贪吃蛇蛇身及运动设置 在本次设计中,贪吃蛇的蛇身设置是整个游戏设计的关键。它的基本思路是:去掉蛇尾,显示并移动出蛇头外蛇身,根据蛇身的运动方向,决定蛇头的位置,完成蛇头吃食物的处理操作,显示蛇头。 而蛇运动的四个方向,则通过按键来控制。蛇吃到一个食物,就加分。每次食物出现的位置不能在蛇身上,如果蛇在运动的过程中撞到自己或者撞墙,则游戏结束,具体效果如图2-2所示,图2-2就是蛇撞到墙之后,提示游戏结束。 图2-2 贪吃蛇撞墙后效果 2.3游戏控制设置 本次游戏贪吃蛇的控制设置也就是控制游戏的暂停与开始。设置PageUp(加速), PageDown(减速)按键来控制速度,设置空格或着p按键来暂停进行中的游戏,设置ENTER或着R或者S按键来开始暂停的游戏。 第三章:游戏解读 本章主要讲解了贪吃蛇游戏各模块及程序流程有若干类实现,下面阐述各个类的设计与实现,以及支持该各个步骤背后运行的理论基础。 3.1 GreedSnake类 该类包含六个主要的功能方法,分别是: (1)构造函数public GreedSnake(),主要用来设置用户控制界面。 (2)public void keyPressed()方法,主要用来对游戏的按键操作进行处理。 (3)void repaint()主要用来绘制游戏界面包括蛇和食物。 (4)private void drawNode()主要用来绘制某一结点。 (5)public void updateScore()方法主要用来改变积分器。 (6)void begin()方法用来控制游戏的开始界面。 3.2 SnakeModel类 该类包含多个功能方法,分别是: (1)构造函数public SnakeModel(),该方法主要用来初始化游戏界。其中matrix[][]用来存储地图上面的信息,如果什么也没有设置为false,如果有食物或蛇,设置为true;nodeArray,一个LinkedList,用来保存蛇的每 一节;food用来保存食物的位置;而Node类是保存每个位置的信息。 (2)public void changeDirection()方法主要用来改变蛇的运动方向,changeDirection(int newDirection) ,用来改变蛇前进的方向,而且只是 保存头部的前进方向,因为其他的前进方向已经用位置来指明了。其中newDirection必须和原来的direction不是相反方向,所以相反方向的值用了同样的奇偶性。在测试的时候使用了direction%2!=newDirection%2 进行判断。 (3)public boolean moveOn()方法使实现蛇运动的函数,其中moveOn()用来更新蛇的位置,对于当前方向,把头部位置进行相应改变。如果越界,结束;否则,检测是否遇到食物(加头部)或身体(结束);如果什么都没有,加上头部,去掉尾部。由于用了LinkedList数据结构,省去了相当多的麻烦。 (4)public void run()方法主要用来完成游戏主体运行流程控制功能。 (5)private Node createFood()方法用来生成食物及放置地点。 (6)public void speedUp()和()两个方法对蛇运行的速度进行控制。 (7)public void changePauseState() 方法用来改变游戏的状态,是“暂停”还是“继续”。 3.3.Node类 该类只有一个方法Node(),该方法用来定义蛇的结点部分,这也是游戏的关键所在。 第四章.游戏源程序清单与注释 本章主要陈列了贪吃蛇游戏的运行源程序代码,代码如下: # GreedSnake.java package GreedSnake; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; //Main Class public class GreedSnake implements KeyListener { JFrame mainFrame; Canvas paintCanvas; JLabel labelScore;//计分牌 SnakeModel snakeModel = null;// 蛇 public static final int canvasWidth = 300; public st

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档