游戏描述:
俄罗斯方块分为多个形状,每次在屏幕的上方的中间随机出现一个形状,然后这个形状以一定的速度向下落。
下落过程中,可以使用键盘下左右控制方块的移动,按上设为改变方块的形状,当下落在屏幕的底或者碰到屏幕上已经堆积的方块时停下,以它自身的形状加入到屏幕上已堆积的方块 中。
堆积的方块中,若有其中有一行被所有方块填满,则这一行被消除。
当堆积的方块中其中有一列,超过屏幕顶端,则Game Over。
冲突检测:
1、 移动的冲突检测。
1) 当方块分别在最左边、最右边、最下面时,方块不能向左、右、下方移动。
2) 当方块左、右、下方有堆积的方块时,方块不能向左、右、下方移动。
2、 变换的冲突检测。
1) 当方块变换后的状态中存在一个坐标,使得这个坐标越界(超出上下左右边界),那么不能变换(该程序采用恢复到变换前的状态)。
2) 当方块变换后的状态中存在一个坐标,使得这个坐标和已堆积的方块的坐标重合,那么不能变换。
判断停下:
1、方块中存在一个坐标在屏幕的底时,则方块停下,加入已堆积的方块中。
2、方块中存在一个坐标的纵坐标加+1和已经堆积方块中的一个坐标重合,则方块停下,加入已堆积的方块中。
方块停下后,初始化新的方块。
判断消行:
当方块停下来的时候,从方块最小纵坐标到最大纵坐标扫描已堆积的方块,若在堆积的方块中这一行已填满,则消除改行所有的方块,且将该行上面的方块向下移动一行。
不足之处:
1、每次初始化方块时,都是new的一个新Shape的对象,这样太耗费空间了,可否只用new一个对象,然后再下一次的时候初始化Shape对象时,直接改变Shape指向的子类。一开始我想的是第一次初始化方块时,直接new 出来。在以后初始化方块时(若shape不为空),先向上转换为Shape类型,然后再强转为Shape的其他子类,这样显然不行。单例模式?用了子类怎么办?
2、在各种冲突检测中,时间复杂度太高。
游戏相关图片:
完整代码见附件。
分享到:
相关推荐
《Android俄罗斯方块游戏开发详解》 在移动设备上,Android平台因其开源性和广泛的设备覆盖范围,成为开发者们实现各种游戏应用的理想选择。本篇将深入探讨如何在Android环境中开发一款经典的俄罗斯方块游戏,涉及...
《Android俄罗斯方块游戏源码解析》 在移动设备领域,Android系统因其开源特性而备受开发者喜爱,其中,开发游戏是Android应用的一大热门方向。本文将深入探讨一款基于Android平台的“俄罗斯方块”游戏的源码,揭示...
【Android俄罗斯方块游戏源码解析】 Android俄罗斯方块是一款基于Android平台的经典益智游戏,其源码提供了深入了解Android游戏开发的机会。通过分析这个源码,我们可以学习到以下几个关键知识点: 1. **Android...
《Android俄罗斯方块游戏源码解析》 在深入探讨Android平台上的俄罗斯方块游戏源码之前,我们首先要了解一些基础知识。俄罗斯方块是一款经典的游戏,起源于1984年,由苏联程序员阿列克谢·帕基特诺夫设计。它的玩法...
在本项目中,我们关注的是一个基于Android平台的俄罗斯方块游戏。这是一款经典的游戏,由一系列不同形状的方块组成,玩家需要控制...总之,这个Android俄罗斯方块游戏项目是学习移动游戏开发和Android编程的绝佳实例。
本篇文章将详细解析一个简单的Android俄罗斯方块游戏的源码,帮助你理解游戏的核心机制、Android游戏开发的基本原理以及如何在Android环境中运行游戏。 一、Android游戏开发基础 Android游戏开发基于Android SDK,...
【Java Android俄罗斯方块游戏源代码】是一款基于Android平台开发的经典游戏应用,它展示了如何将传统的俄罗斯方块游戏与Java编程语言相结合,适用于移动设备。这个项目为学习Android应用程序开发和游戏编程的开发者...
《Android版俄罗斯方块游戏源码解析与学习指南》 Android版的俄罗斯方块游戏,作为一款经典且深受喜爱的休闲益智游戏,是许多初级Android开发者理想的实践项目。源码的学习不仅能帮助开发者掌握基本的游戏开发流程...
基于Android俄罗斯方块游戏设计与实现.docx