实现方向键控制蛇的方向,空格键控制游戏暂停或继续,还有分数等。
3S
ake
该文件实现蛇的结构和具体运动,如判断食物是否和怎样被吃掉及判断后的动作。
4Node
该文件实现组成蛇身的单位食物。
5S
akePa
el
该文件实现画板功能,用红蓝间隔画蛇身。
StatusRu
abl该文件为记录状态的线程。6
e
7S
akeRu
able该文件为蛇运动以及记录分数的线程。
3关键技术
文案
f实用
31关键技术及实现
程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。
32设计原理
1主类S
akeGame主类为此程序的入口,定义了S
akeFrame的对象frame开始运行此程序。2类S
akeFrame(1)成员变量见表31
表31主要成员变量
成员变量描述
变量类型
名称
状态标签分数标签蛇面板速度标签蛇类对象菜单条游戏菜单帮助菜单速度菜单新菜单项暂停菜单项关于菜单项慢菜单项中间菜单项快菜单项开始菜单项帮助菜单项
PrivateJLabelPrivateJLabelprivateJPa
elprivateJLabelprivateS
akeprivateJMe
uBarJMe
uJMe
uJMe
uJMe
uItemJMe
uItemJMe
uItemJMe
uItemJMe
uItemJMe
uItemJMe
uItemJMe
uItem
statusLabelscoreLabels
akePa
elspeedLabels
akebargameMe
uhelpMe
uspeedMe
u
ewItempauseItemaboutItemslowItemmidItemfastItembegi
ItemhelpItem
文案
f实用
(2)方法见表32
方法名
S
akePa
eladdKeyListe
ersetBou
dsJLabelJMe
uJMe
uItem
表32主要方法
创建蛇的面板监视器设置尺寸设置标签创建菜单构造菜单项
功能
3类S
ake
(1)成员变量见表33
表33主要成员变量
成员变量描述
变量类型
是否运动蛇体食物方向分数状态速度慢中快运动中已暂停游戏结束左上右下
boolea
ArrayListNodeNodei
ti
ti
ti
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
tpublicstaticfi
ali
t
名称
isRu
bodyfoodderectio
scorestatusspeedSLOWMIDFASTRUNNINGPAUSEDGAMEOVERLEFTUPRIGHTDOWN
文案r