- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 1993考研英语阅读理解与翻译.doc
- 多式样ProgressBar.doc
- 十大吃西餐的基本礼仪知识_十大西餐礼仪常识.docx
- 山大网络教育英语期末考试模拟题三.doc
- 7014轴承设计计算稿.docx
- 人文英语阅读教程4单元:CD语言点.doc
- CSS颜色属性漂亮颜色背景.docx
- 第三讲英汉动词对比.ppt.Convertor.doc
- 英语口译(二级)讲义.doc
- 上半部分50句背诵.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)