记得小时候就玩过俄罗斯方块,游戏虽然简单,却很入迷。现在会做一些小游戏了,偶尔也想到过这个项目,却不屑其简单。最近老婆买了个新手机,上面的俄罗斯方块玩得不亦乐乎,便下定了做一个的决心。但不是简单的重复,力求在可玩性上有些突破。
想法:
1、游戏分为单人、双人竞赛、双人合作三种模式。
2、木块的形状多样化。
3、难度调节除下落的速度外,还有初始木块的多少。
数据结构:
1、首先是每一种形状的Block结构如何存储。两种想法,一是用一个4*4的二维数组,每一个元素存储一个Square的相对坐标。二是用一个4元素的一维数组,决定用第二种方法。
2、怎么表示Scene中每一格Square的状态。一是用11*19的二维数组,二是用19个Line对象。采用第二种方法。
设计模式:
1、既然每种形状的Block都是由Square组成的,当然最基本的是Square类,当然得有该Square相对于Block左上角的相对坐标,以及Render方法,Block及Line的Render其实就是调用一个个Square的Render方法。其次是Block类,有4个Square对象,表示一个Block的结构,以及Move和Turn方法,Move只要改变其左上角坐标就可以了。Block下落到不能移动时转换成Line对象。
2、因为游戏有三种模式,所以玩家的个数不定,设计一个Player类,存储每一个玩家的Score,CurrentBlock,NextBlock,及输入操作的判断。
3、双人竞赛模式需要有两块场地进行角逐,故设计一Scene类,表示不同的场景。
4、最后当然得有一Game类,PlayMode在此控制,以及Frame的Update和Render。
此游戏待最终完成后放出。
想法:
1、游戏分为单人、双人竞赛、双人合作三种模式。
2、木块的形状多样化。
3、难度调节除下落的速度外,还有初始木块的多少。
数据结构:
1、首先是每一种形状的Block结构如何存储。两种想法,一是用一个4*4的二维数组,每一个元素存储一个Square的相对坐标。二是用一个4元素的一维数组,决定用第二种方法。
2、怎么表示Scene中每一格Square的状态。一是用11*19的二维数组,二是用19个Line对象。采用第二种方法。
设计模式:
1、既然每种形状的Block都是由Square组成的,当然最基本的是Square类,当然得有该Square相对于Block左上角的相对坐标,以及Render方法,Block及Line的Render其实就是调用一个个Square的Render方法。其次是Block类,有4个Square对象,表示一个Block的结构,以及Move和Turn方法,Move只要改变其左上角坐标就可以了。Block下落到不能移动时转换成Line对象。
2、因为游戏有三种模式,所以玩家的个数不定,设计一个Player类,存储每一个玩家的Score,CurrentBlock,NextBlock,及输入操作的判断。
3、双人竞赛模式需要有两块场地进行角逐,故设计一Scene类,表示不同的场景。
4、最后当然得有一Game类,PlayMode在此控制,以及Frame的Update和Render。
此游戏待最终完成后放出。