俄罗斯方块游戏设计.docx
- 文档编号:13031207
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:13
- 大小:19.70KB
俄罗斯方块游戏设计.docx
《俄罗斯方块游戏设计.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块游戏设计.docx(13页珍藏版)》请在冰点文库上搜索。
俄罗斯方块游戏设计
俄罗斯方块游戏设计
俄罗斯方块游戏设计JAVA语言Eclipse平台开发
以下为开发过程需要使用的packages及其中classesandmethods
JAVA语言和C语言、C++语言很接近,它是一种面向对象、独立于开发平台的高级编程语言。
它独特的语法规则和类库是组成JAVA技术的两个重要部分。
假期总结:
坦白讲,这个暑假我没花多少时间在学习计算机编程技术上面。
在刚放暑假的时候,我去图书馆借了七八本编程书,有VisualC++、C#、以及JAVA方面的书,信誓旦旦这个暑假要好好研究技术。
然而,执行力是我很缺乏的一个缺陷吧。
在家贪图一时之爽,基本上没去翻书学习,久而久之,就越害怕打开书本。
后期提前回学校,学了一点点JAVA。
回想整个大一,包括这个暑假,我很羞愧。
自己在过去的一年里浪费了太多的时间,对成绩抱着一种比较无所谓的心态,对于学习也是,可想而知,与别人的差距也就越来越大,这也是我现在不愿意看到的。
在往后的日子,我不敢保证自己能如何刻苦勤奋地学习,但是,至少我会尽力做到问心无愧,我会清楚自己要什么,并且行动起来。
一、Packagecn.itcast.tetris.controller
控制器
控制Ground,Snake,Food
负责游戏的逻辑
处理按键事件
MethodSummary
void
addGameListener(GameListener l)
添加监听器,可添加多个
void
beforeDeleteFullLine(Ground ground,int lineNum)
处理Ground触发的beforeDeleteFullLine事件将会改变满行的颜色并暂停一段时间
void
continueGame()
继续游戏
void
fullLineDeleted(Ground ground,int deletedLineCount)
处理Ground触发的fullLineDeleted事件,这个方法什么也没做,只是打印了一句话
javax.swing.JLabel
getGameInfoLabel()
得到显示提示信息的组件
GamePanel
getGamePanel()
Ground
getGround()
java.lang.String
getNewInfo()
获得游戏的最新提示信息
ShapeFactory
getShapeFactory()
void
groundIsFull(Ground ground)
处理Ground的groundIsFull()事件,将触发游戏结束事件
boolean
isPausingGame()
游戏是否是在暂停状态
boolean
isPlaying()
是否正在游戏中
boolean
isShapeMoveDownable(Shape s)
询问一下图形是否可以下落,如果不能下落了,就会让图形变成障碍物
这个方法是同步的
void
keyPressed(java.awt.event.KeyEvent e)
处理键盘按键
LEFT:
向左移动
RIGHT:
向右移动
DOWN:
向下移动
UP:
变形
PAGEUP:
加快速度
PAGEDOWN:
减慢速度
Y:
重新开始游戏
ENTER:
暂停/继续
void
newGame()
开始一个新游戏
void
pauseGame()
暂停游戏
void
removeGameListener(GameListener l)
移除监听器
void
setGameInfoLabel(javax.swing.JLabel gameInfoLabel)
设置
void
setGamePanel(GamePanel gamePanel)
void
setGround(Ground ground)
void
setShapeFactory(ShapeFactory shapeFactory)
void
shapeMovedDown(Shape s)
处理图形触发的shapeMovedDown(图形下落)事件
将会重新显示
void
stopGame()
停止当前游戏
1、Packagecn.itcast.tetris.entities
ClassSummary
Ground
可以叫做地形,或地面
维护障碍物的信息
可以使用提供的addObstacle(int,int)和addStubbornObstacle(int,int)方法添加障碍物。
Shape
维护一个图形,一个图形可以有一种或多种状态
可以通过setColor()方法改变图形的颜色
可以通过覆盖drawUnit(Graphics,int,int,int,int)方法改变图形的显示
用内部类ShapeDriver驱动图形定时向下移动
使用时一定要给实例注册监听器,否则不能正常运行
ShapeFactory
图形工厂
可以产生多种形状,多种颜色的图形
setDefaultShapeColor()方法可以设置默认产生的图形的颜色
也可以通过setColorfulShape()方法设置是否产生彩色图形
UnitType
可以表示地面里面的障碍物,不可消除的障碍物,空白
外部不可以直接new一个实例,而应该用clone()方法产生实例(防止产生不能识别的类型)
例如产生一个障碍物:
UnitTypeaObstacle=UnitType.OBSTACLE.clone();
1、ClassGround:
publicclassGround
extendsjava.lang.Object
可以叫做地形,或地面
维护障碍物的信息
可以使用提供的addObstacle(int,int)和addStubbornObstacle(int,int)方法添加障碍物。
可以通过setObstacleColor(),setStubbornObstacleColor()或setGriddingColor()方法更改障碍物或网格的颜色
通过setDrawGridding()方法设置是否画空白(网格)
用setColorfulSupport()方法设置是否支持彩色显示
覆盖drawObstacle(Graphics,int,int,int,int)方法可以改变障碍物的显示方式
覆盖drawStubbornObstacle(Graphics,int,int,int,int)方法可以改变不可消除的障碍物的显示方式
MethodSummary
void
accept(Shape shape)
把指定的图形变成石头
然后将会调用deleteFullLine()方法扫描并删除满行
void
addGroundListener(GroundListener l)
添加监听器,可添加多个
void
addObstacle(int x,int y)
在指定的位置添加一个障碍物
void
addStubbornObstacle(int x,int y)
在指定的位置添加一块不可消除的障碍物
void
changeFullLineColor(int lineNum)
改变指定行的颜色,(可以做为消行前的效果)
void
clear()
清空容器
void
deleteFullLine()
扫描并删除满行
将调用deleteLine(int)方法删除满行
void
deleteLine(int lineNum)
删除指定的行(这一行上面所有的石头整体下移一行)
void
drawGridding(java.awt.Graphics g,int x,int y,int width,int height)
画一个空白的方法(网格),可以覆盖这个方法改变空白(网格)的显示
void
drawMe(java.awt.Graphics g)
显示,将调用drawGridding(Graphics,int,int,int,int),drawObstacle(Graphics,int,int,int,int)和drawStubbornObstacle(Graphics,int,int,int,int)方法
void
drawObstacle(java.awt.Graphics g,int x,int y,int width,int height)
画一个障碍物的方法,可以覆盖这个方法改变障碍物的显示
void
drawStubbornObstacle(java.awt.Graphics g,int x,int y,int width,int height)
画一个不可消除的障碍物的方法,可以覆盖这个方法改变不可消除的障碍物的显示
void
generateSomeStochasticObstacle(int amount,int lineNum)
在指定的范围内随机生成一些障碍物
产生的区域行是1-lineNum
void
genernateAStubbornStochasticObstacle()
随机生成一个不可消除的障碍物,这个随机的坐标的y坐标不小于5
java.awt.Color
getFullLineColor()
得到满行的颜色
java.awt.Color
getGriddingColor()
得到网格的颜色
java.awt.Color
getObstacleColor()
得到障碍物的颜色
java.awt.Color
getStubbornObstacleColor()
得到不可消除的障碍物的颜色
void
init()
初始化,将会调用clear()方法
boolean
isBlank(int x,int y)
指定位置是否是空白
boolean
isColorfulSupport()
是否支持彩色显示
boolean
isDrawGridding()
是否画网格
boolean
isFull()
容器是否放满了(是否还能接受图形)
boolean
isMoveable(Shape shape,int action)
根据图形的动作,判断是否会碰到障碍物或不可消除的障碍物,或是否会超出边界,
boolean
isObstacle(int x,int y)
指定位置是否是障碍物
boolean
isStubbornObstacle(int x,int y)
指定位置是否是不可除的障碍物
void
removeGroundListener(GroundListener l)
移除监听器
void
setColorfulSupport(boolean colorfulSupport)
设置是否支持彩色显示
void
setDrawGridding(boolean drawGridding)
设置是否画网格
void
setFullLineColor(java.awt.Color fullLineColor)
设置满行的颜色
void
setGriddingColor(java.awt.Color griddingColor)
设置网格的颜色
void
setObstacleColor(java.awt.Color obstacleColor)
设置障碍物的颜色
void
setStubbornObstacleColor(java.awt.Color stubbornObstacleColor)
设置不可消除的障碍物的颜色
2、ClassShape:
publicclassShape
extendsjava.lang.Object
维护一个图形,一个图形可以有一种或多种状态
可以通过setColor()方法改变图形的颜色
可以通过覆盖drawUnit(Graphics,int,int,int,int)方法改变图形的显示
用内部类ShapeDriver驱动图形定时向下移动
使用时一定要给实例注册监听器,否则不能正常运行
MethodSummary
void
addShapeListener(ShapeListener l)
添加监听器
将会启动驱动图形下落的线程
void
changePause()
更改暂停状态
若是暂停状态,则继续下落
若正在下落,则暂停
void
die()
结束图形定时下落的线程
void
drawMe(java.awt.Graphics g)
显示,将调用drawUnit(Graphics,int,int,int,int)方法
void
drawUnit(java.awt.Graphics g,int x,int y,int width,int height)
画具体的每一个方块的方法,可以覆盖这个方法改变图形的显示
java.awt.Color
getColor()
得到图形的颜色
int
getHeight()
int
getLeft()
得到图形的位置
int
getSpeed()
得到图形的下落速度
int
getStatus()
得到图形的当前是第几种状态
int
getSwiftSpeed()
int
getTop()
得到图形的位置
void
init()
初始化位置,速度等
boolean
isLife()
boolean
isMember(int x,int y,boolean isRotate)
指定的位置是否是图形的一部分
boolean
isPause()
得到图形的暂停状态
boolean
isSwift()
void
moveDown()
向下移动
void
moveLeft()
向左移动
void
moveRight()
向右移动
void
moveUp()
void
rotate()
旋转(或叫做变形,显示下一个状态)
void
setBody(int[][] body)
设置图形的类型(多种状态)
void
setColor(java.awt.Color color)
设置图形的颜色
void
setLeft(int left)
设置图形的位置
void
setPause(boolean pause)
设置图形的暂停状态
void
setSpeed(int speed)
设置图形的下落速度
void
setStatus(int status)
设置图形的当前是第几种状态
void
setSwift(boolean swift)
一落到底
void
setSwiftSpeed(int swiftSpeed)
void
setTop(int top)
设置图形的位置
void
speedDown()
减速
void
speedUp()
加速
3、ClassShapeFactory:
publicclassShapeFactory
extendsjava.lang.Object
图形工厂
可以产生多种形状,多种颜色的图形
setDefaultShapeColor()方法可以设置默认产生的图形的颜色
也可以通过setColorfulShape()方法设置是否产生彩色图形
MethodSummary
java.awt.Color
getDefaultShapeColor()
得到默认产生的图形的颜色
Shape
getShape(ShapeListener shapeListener)
生产出随机类型的图形,并且把传过来的监听器注册给它
boolean
isColorfulShape()
是否产生彩色图形
void
setColorfulShape(boolean colorfulShape)
设置是否产生彩色图形
void
setDefaultShapeColor(java.awt.Color defaultShapeColor)
设置默认产生的图形的颜色
4、ClassUnitType:
publicclassUnitType
extendsjava.lang.Object
implementsjava.lang.Cloneable
可以表示地面里面的障碍物,不可消除的障碍物,空白
外部不可以直接new一个实例,而应该用clone()方法产生实例(防止产生不能识别的类型)
例如产生一个障碍物:
UnitTypeaObstacle=UnitType.OBSTACLE.clone();
MethodSummary
UnitType
clone()
返回一个新的,和自己有一样的颜色并且类型相同的UnitType
void
cloneProperties(UnitType ut)
把自己克隆成和指定的UnitType相同的UnitType,value和Color都会被克隆
boolean
equals(java.lang.Object obj)
相同的类型就是相等,不比较颜色
java.awt.Color
getColor()
得到颜色
int
getValue()
得到类型值
int
hashCode()
void
setColor(java.awt.Color color)
设置颜色
void
setValue(int value)
设置类型值
三、Packagecn.itcast.tetris.game
ClassSummary
CommonShapeFactory
为了扩展一些功能,可用配置文件配置这个工厂用的颜色
GameOptionPanel
游戏的设置项面板
MainFrame
主界面,实现了GameListener接口
MyGroundListener
自己用的一个GroundListener,处理不可消的障碍物,增加趣味性
4、Packagecn.itcast.tetris.listener
InterfaceSummary
GameListener
游戏监听器
GroundListener
地面监听器
ShapeListener
图形监听器
五、Packagecn.itcast.tetris.util
ClassSummary
Global
工具类
此类中存放了其他类中用到的一些常量
并且支持配置文件
配置文件的路径为游戏运行的目录,文件名为tetris.ini
配置文件的写法请参见字段的注释
配置文件中设置项可以只写需要配置的,没有写的设置项默认为缺省值
各配置项的缺省值请参见字段的注释
每个配置项都有设置值范围,超出范围(无效)的设置值将不起作用
设置值的范围请参见字段的注释
六、Packagecn.itcast.tetris.view
ClassSummary
GamePanel
游戏的显示界面
可以用setBackgroundColor()设置游戏的背景色
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 俄罗斯方块 游戏 设计