俄罗斯方块在线游戏(神一般的操作!世界排名第一玩家玩俄罗斯方块!手速惊人!)
俄罗斯方块在线游戏文章列表:
- 1、神一般的操作!世界排名第一玩家玩俄罗斯方块!手速惊人!
- 2、俄罗斯方块1010经典游戏再焕活力,挑战高分刻不容缓
- 3、炫酷版俄罗斯方块,你没玩过的船新版本
- 4、EA的手机版俄罗斯方块凉了
- 5、如何开发一个苹果手机App:俄罗斯方块游戏
神一般的操作!世界排名第一玩家玩俄罗斯方块!手速惊人!
《俄罗斯方块》对于所有的玩家来说都不会陌生,由ENHANCE GAMES制作、索尼发行的《俄罗斯方块:效应》在本月已经正式发售。虽然《俄罗斯方块》的玩法大家再熟悉不过,但真正的高手玩起来依然能玩出常人所不能及的超高水准。近日,世界排名第一的《俄罗斯方块》玩家发布了一段自己的实机视频,在21级超高速难度下,依然用神一般的反应速度轻松玩转游戏。
PSN ID为zin_ss的玩家是《俄罗斯方块:效应》目前总积分世界第一记录的保持者,他挑战的是游戏中的大师关卡,开局的起手速度可以由玩家自己选择,从M1到M30,越到后面速度会越来越快。zin_ss选择了从M21的速度开始游戏,在经过了长达5分钟的非人操作之后,最终zin_ss以1,718,250的积分排名世界第一,不得不说这个反应速度实在厉害,真不愧是世界第一。
《俄罗斯方块:效应》是由ENHANCE GAMES制作、索尼发行的一款益智游戏。本作将会是一款同时能在PS4和PS VR上玩的俄罗斯方块游戏,想要重温经典的玩家不要错过哦。
《俄罗斯方块:效应》版简介:
游戏类型:休闲
主要标签:单人、反应、消除
相似游戏:《俄罗斯方块》
上市日期:2018年11月9日
好评度:暂无
评测:儿时经典游戏的全新重制版,看起来非常的不错。
游戏截图:
俄罗斯方块1010经典游戏再焕活力,挑战高分刻不容缓
很多朋友小时候都玩过《俄罗斯方块》这款游戏,填满每一排方块消除得分,用来打发无聊时光真是再合适不过了!如今,俄罗斯方块被带到了微信小游戏上面,玩法也有巨大的革新,它就是今天给大家介绍的《俄罗斯方块1010》小游戏,赶紧来挑战高分吧。
游戏界面下方有3个随机组合的方块,拖动方块放到屏幕中,在垂直和水平方向创建并消除整行模块,避免方块填满整个屏幕。
当一排都被填满方块的时候就可以消除得分了,得分规则和《俄罗斯方块》等游戏类似,只是这一次方块不再是从上往下掉落,没有时间限制,咱们可以想清楚了方块安排的位置再去安排。
这个游戏考验的是咱们的统筹安排能力,合理安放好每一个方块的位置,才能得分且不造成堵塞,难度相比传统俄罗斯方块游戏其实是小很多的。
游戏的画面表现非常出色,每一个方块都有其独特的颜色,方块内部镶嵌闪耀的钻石,看起来很舒适。小伙伴们,快来和喵喵(微信号:yuntuweiyou)一起来挑战这个微信小游戏吧。
炫酷版俄罗斯方块,你没玩过的船新版本
话题作品《俄罗斯方块:效应 连接》已于今日登陆Switch平台,日媒发布了抢先体验报告,下面小编就带大家了解一下这款唯美的作品。
本作是著名益智解谜游戏《俄罗斯方块》的现代版本,同时也是支持VR和4K分辨率的《俄罗斯方块:效应》(PS4/PC)的多平台加强版,追加了本地/在线多人模式。于2020年10月登陆Xbox(PS4和PC原版可免费升级)。这款作品强调沉浸感,游戏中会展现梦幻般的视觉效果以及和操作同步的灵动音效。玩家可以享受足量的单人模式、经典对战模式、以及合作模式。
NS版的基本游戏内容与已经发售的其他平台版本没有区别。在LOCAL MATCH中可以拆下Joy-Con享受双人对战,添加一个手柄还能体验三人合作模式。
不过,本作并不支持本地多人联机,购买了Nintendo Switch Online的玩家可以使用线上联机功能进行合作或对战,支持跨平台联机。
NS版支持掌机模式和桌面模式,但相对于TV模式,这两种模式的画面尺寸较小,因此为了避免玩家看不清,所以游玩的区域有所增大。为了保证游玩体验,开发团队还针对NS玩家的游玩模式调整了对应的画面特效。日媒表示,无论掌机模式还是TV模式,方块的下落速度、旋转速度、画面演出都没有违和感。
此外,本作还配合NS的HD震动功能追加了“EXTRA震动”,当玩家左右移动方块时会感觉到手柄传来相应的震动反馈,感觉像是手持真正的“俄罗斯方块”一般。哪怕玩过PS4原版的玩家,也会因为“EXTRA震动”而感受到不同的体验。
本作的游戏模式多种多样:能够体验梦幻背景特效和音乐的单人模式“JOURNEY MODE”和“EFFECT MODES”;1V1对战模式“SCORE ATTACK”和“ZONE BATTLE”;以及星座主题的3人合作BOSS战“CONNECTED”。
其中相爱相杀的“ZONE BATTLE”模式尤为刺激,玩家一次性消除多行方块时,会向对手的区域中送出若干捣乱方块,在捣乱方块生效前,被攻击的玩家如果消除多行方块的话,可以抵消对方的攻击。
而画面中的量表经过时间填满后,玩家可以发动“ZONE”模式,该模式中方块的自然下落会停止,在此模式中本该消除的方块将暂时不会消除,而是积累加算,等“ZONE”模式结束时一起结算,这样就可以发动通常状态中无法做到的4行以上的攻击,从而一举逆转不利的战局。
在“CONNECTED”模式中,3名玩家将组队对抗星座主题BOSS。最开始3名玩家将各自游玩自己的区域,随着消除的行数越来越多,3名玩家的区域将最终合体,变为一个巨大的游玩区域“CONNECTED ZONE”,然后3名玩家按照顺序轮流放置方块。
这个模式中,玩家之间的交流非常重要,虽然使用语音聊天功能很不错,不过还是面对面的喊话更为直接和有趣。比如BOSS放出了巨大的方块、或者辛苦堆积的方块被BOSS干扰出现缺口等等情况,玩家都可能会不假思索的大声喊出来而引发欢笑,所以召集家人或亲友共同游玩的话应该会体验到别样的快乐。
另外,本作还有一种面向《俄罗斯方块》玩家社区的模式,受到海外使用NES版举行的“Classic Tetris World Championship”锦标赛影响,本作的“CLASSIC SCORE ATTACK”模式将忠实再现NES版的味道。
这个模式并不是单纯的看起来“有内味儿”,不但实装了NTSC和PAL画面模式,而且方块的移动速度和下落速度也有所提升,这些细节都是以NES版为基准而制作的。
虽然《俄罗斯方块》诞生于上世纪80年代,而本作的玩家年龄层相对也比较高,但2018年的锦标赛冠军仅为一名16岁的少年,可见这个系列也刮起了新风,深受年轻玩家的喜爱。
从过去到现在,《俄罗斯方块》在各种平台上均有发布过,而且免费游玩的版本也并不少见。但《俄罗斯方块 效应 连接》这款游戏,将音乐和画面特效这两种元素与玩家的操作相融合,实现了前所未有的舒适感和沉浸感。而且游戏中不光有对战模式,还有即使是不擅长《俄罗斯方块》的玩家也可以安心体验的合作模式,是一款非常独特的作品。
本作已于10月8日正式登陆Switch,10月21日前购买享受75折,感兴趣的小伙伴千万不要错过这款唯美的作品。也推荐有条件的玩家选择PS4/PC平台的VR版本,能够享受到另一个次元的奇妙体验。
EA的手机版俄罗斯方块凉了
随着数字游戏大行其道,关于数字游戏的所有权/使用权的争论和担心已经开始应验了,用户买到的只是使用授权,说不定哪天就会失效。
曾经的实体游戏其实也是使用授权,但厂商方面是不能反悔的,只要断开网络就必然能够离线使用光盘中的内容。
而数字版游戏则每次都需要联网认证,所以从操作层面来讲,厂商方面是有可能收回授权,让玩家的钱白花的。这不,EA发行的手游版《俄罗斯方块》就进行了这样一波操作,虽然这款游戏价格低廉,只有1.99美元甚至免费,但从4月份开始,玩家将无法进入手游版《俄罗斯方块》。
EA在App Store和Google Play上发表了一则声明:“玩家们好,我们共同走过了一段精彩旅程,但遗憾的是要说再见了。2020年4月21日,《俄罗斯方块》将会退休,不再可用。你将可以在2020年4月21日之前继续游玩并使用游戏内道具。我们希望你已经充分享受这款游戏,感谢大家一如既往的支持。谢谢!”
这次EA下架《俄罗斯方块》也是无奈之举,因为他们已经不再拥有手机版《俄罗斯方块》的版权,《俄罗斯方块》的版权已经完全交给了N3twork工作室,也就是《俄罗斯方块99》和《俄罗斯方块大逃杀》的开发组。
如何开发一个苹果手机App:俄罗斯方块游戏
俄罗斯方块游戏,是风靡世界几十年的经典游戏,相信绝大多数人都玩过这个游戏,那么它是怎样编写出来的,我们如何才能自己编写一个这样的游戏呢?
游戏开发步骤
要编写一个游戏,基本按照以下一些步骤进行:
1.游戏规则定义
游戏规则决定了这个游戏怎么玩,好不好玩,也就决定了编写程序实现的目标。不同的需求导致不同的规则,不同的规则就需要不同的方法去实现。
例如,俄罗斯方块是由哪些类型方块组成,棋盘布局是9*18还是10*20,是否允许旋转,消掉一行获得的分数和获得多行获得的分数如何进行累加,等等。
2.选择游戏运行平台和界面设计
在很多种平台上都可以玩游戏,常见的比如电脑pc或者笔记本上面直接运行游戏exe程序,或者在电脑浏览器中运行flash游戏,或者手机上运行游戏App,或者在特殊游戏机比如xbox等上直接运行游戏程序,或者在VR设备上运行游戏程序。
不同的平台,需要不同的实现方式,也就需要用不同的程序或开发语言开发工具来实现。
例如,在网页上开发游戏,可以用html css js实现,也可以用flash实现;在手机上开发游戏,可以用java语言在android系统中实现,也可以用objective-c在ios系统上实现;在电脑pc机上可以用c语言在windows系统中实现。
界面设计就是根据游戏规则决定人机交互界面,决定了输入和输出的方式。
例如,俄罗斯方块可以设计成左边是棋盘,右侧上面是分数,下一个方块,还可以放一个重新来一句按钮,或者暂停按钮等等。
方块设计成纯一种颜色块,还是多种颜色块,或者是方的还是圆的,或者是卡通图案,这些就是界面设计。
3.考虑编程思路和算法设计
如果决定了在哪种平台以及用何种开发语言来编程实现游戏,则要考虑编程的思路,数据的存储,以及具体的算法。
例如,俄罗斯方块根据棋盘大小是用二维数组来实现,还是用一维数组来实现,还是用字典表来实现
一局游戏是定时计算,还是用一个循环来处理
如何保存下一个类型,如何计算分数,如何判断一个方块是否落地不能再移动,如何判断一行是否已经被填满,如何判断游戏已经结束
4.按照前面设计的思路编写代码实现
考虑好编程思路和算法设计之后,可以按照设想进行实际的编程开发
不停的验证思路,通过开发中的实际情况,可能对编程思路进行修改调整,直到完成整个游戏功能
代码就是一行一行的编写出来,直到成为一个可以运行的游戏程序
5.游戏测试
测试就是把自己当成实际用户来运行游戏程序,找到游戏可能存在的问题,避免程序没有按照预期执行,防止程序崩溃死机等情况,验证游戏确实按照游戏规则能完整可靠的运行,这个开发人员可以找其他人进行测试,防止自己存在思维盲区。
6.游戏发布
游戏测试完成之后,就可以将游戏发布到相应的渠道或者平台,让更多的人可以玩到这个游戏。
例如,苹果手机App可以发布到苹果的AppStore,安卓手机App可以发布到各大应用市场。
最简单的发布就是直接发送给自己的朋友,让他们大吃一惊。
游戏规则定义
俄罗斯方块游戏有如下规则:
棋盘由宽度为10格高度为20格的方块组成
方块共有7种形态:
长条形1个,正方形1个,T型1个,L型2个,S型2个
方块出现在最上方正中间,同时知道下一个方块是什么
方块往下掉落,每隔1秒下落一行
方块下落中如果碰到有方块阻挡不能下落则停止下落
方块停止下落后,判断是否有整行都被方块填满,如果有,则整行消失,上面的全部行整体下落一行
统计消掉的总行数
方块在下落过程中,可以按向下方向键让方块直接掉落到直到停止位置
可以按向左或者向右方向键让方块进行旋转,每按键一次旋转90度
如果没有足够的空间让方块落下则游戏结束
游戏运行平台和界面设计
如果以最流行的苹果手机作为游戏运行环境,则需要开发一个苹果手机App
苹果手机使用的是iOS操作系统,开发环境需要Mac电脑和开发工具软件Xcode
开发语言可以使用objective-C,开发游戏可以使开发用工具包cocos2d
如果需要发布到苹果AppStore,则需要一个开发者账号,以及一年99美金
界面设计:
程序启动之后进入主界面,只能竖屏显示游戏
主界面分为左右部分
左边为棋盘:显示整个棋盘,正方形的格子组成,宽10格高20格
按照苹果手机尺寸320点*480点来设计,20格高度为480点,则宽度10格占用240点
因此左边棋盘占用240点,右侧剩余80点
右边分为上部和下部
上部为状态栏靠上显示:最上方显示显示当前消掉的行数,下面显示方块类型小图标
下部为按钮栏靠下显示:从上往下显示3个按钮,排行榜/关于/重新开始
大概的界面设计如下示意图:
界面运行逻辑:
点击排行榜按钮进入一个新页面,上面显示消掉的行数最多的8个行数数字,下面是一个返回按钮
点击关于按钮进入一个新页面,上面显示一张说明图片,下面是一个返回按钮
点击重新开始按钮,将当前棋盘清空并重新开始一局游戏,游戏启动
游戏启动之后,第一个方块从最上面中间开始往下掉落,每秒下落一行
同时,上方的状态栏,显示下一个即将出现的方块类型小图标
方块下落过程中,在屏幕上单指左滑可以向左逆时针旋转当前方块,或者在屏幕上单指右滑可以向右顺时针旋转当前方块
还可以在屏幕上单指下滑可以让当前方块直接掉落到底部
方块如果不能再往下移动一行的时候,则方块停止,同时开始判断是否能够消掉某些行
如果能够消掉某些行,则统计消掉的行数,增加到上方状态栏显示消掉的数字上,刷新显示
消掉的行从屏幕上消除,同时上方的所有行往下整体移动
加入棋盘最上方中间的供方块出现的地方已经被方块占住了,则认为这一局游戏结束
游戏结束则弹出一个窗口显示游戏结束信息,显示总共消掉了多少行,然后将该记录保存到数据库中
弹出窗口上有返回按钮,点击返回按钮,弹出窗口关闭,回到游戏主界面,主界面停止游戏,点击重新开始按钮开始新一局
编程思路和算法设计
数据存储:
考虑用二维列表来存储棋盘上的每一个格子
[[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
......
[0,0,0,0,0,0,0,0,0,0]]
二维列表里面,第一层是放总计20行,第二层里面是放每一行的10个格子
如果格子里面有方块,则存放数字1,如果没有方块则存放数字0
判断一行如果全部是1,则表示该行填满了方格,需要消掉
使用下列数字来对7种方块进行区分,存储2个变量,当前方块和下一个方块
1:长条形 2:正方形 3:T型 4:L型向左 5:L型向右 6:S型左上右下 7:S型右上左下
生成下一个方块则使用随机函数生成1到7当中的随机数
然后不同方块如果进行了旋转会出现不同的状态,定义旋转状态如下:
11:竖立长条 12:横排长条
21:正方形
31:T型尖头朝下 32:T型尖头朝左 33:T型尖头朝上 34:T型尖头朝右
41:L型短头向左长头向上 42:L型短头向上长头向右 43:L型短头向右长头向下 44:L型短头向下长头向左
51:L型短头向右长头向上 52:L型短头向下长头向右 53:L型短头向左长头向下 54:L型短头向上长头向左
61:S型左上右下竖立 62:S型左上右下横排
71:S型右上左下竖立 72:S型右上左下横排
使用2个变量x,y存储当前方块的左上角的方块的行号和列号
使用变量存储当前已经消除的行数
算法设计:
点击重新开始按钮后,主程序启动
清空整个棋盘,对二维列表全部数字清零
然后生成第1个随机数,赋值给当前方块变量
然后生成第2个随机数,赋值给下一个方块变量
刷新显示页面
进入定时处理函数,定时间隔时间为1秒:
定时处理函数:
判断当前方块如果可以往下移动,则向下移动,修改二维列表变量
如果不可以下移了,则判断是否可以消除某行,如果消除了某行则上方的所有行的值整体下移一行
如果不可以下移也不可以消除了,则将下一个方块的数值赋值给当前方块,随机数生成下一个方块
然后判断当前方块是否可以放入棋盘最上方的中间位置,如果可以放入则修改二维列表变量,如果不能放入,则游戏结束
判断当前方块是否可以下移函数:
根据当前方块类型变量,以及方块当前旋转状态,结合二维列表变量判断,举例:
如果是11竖立长条形,则根据当前方块左上角的行号和列号,可以知道最下方的坐标位置
比如x=0行,y=5列,则最下方的坐标为(3,5),那么只要看二维列表的(4,5)如果为1则不可下移,否则可以下移
比如如果是31:T型尖头朝下
x=0,y=4,那么下方可能有3个方块可能碰到阻碍,分别是(0,4)/(1,5)/(0,6)
那么只要看二维列表的(1,4)/(2,5)/(1,6)只要有一个为1则不可下移,否则可以下移
判断是否可以消除某行函数:
对二维列表进行循环,如果一行当中的所有值都为1,则可以消除
直接将所有上面的行的值往下复制,最上面一行的值全部赋值为0,同时总的消除行数变量加1
判断当前方块是否可以放入棋盘最上方的中间位置函数:
根据当前方块类型变量,以及方块当前旋转状态,结合二维列表变量判断,举例:
如果是1长条形,默认为11树立长条形
则需要判断(0,5)/(1,5)/(2,5)/(3,5)这4个坐标在二维列表中是否为1,只要有1个位置为1则不可放入
比如如果是3T型尖头朝下
则需要判断(0,4)/(0,5)/(0,6)/(1,5)这4个坐标
旋转处理:
总共允许有3种滑动手指操作,向下/向左/向右
向下滑动手指,表示将当前方块直接掉落到最下方直到碰到阻碍停住
向左滑动手指,表示将当前方块进行逆时针旋转
向右滑动手指,表示将当前方块进行顺时针旋转
向下掉落处理:
重复调用前面定义的判断当前方块是否可以下移函数
从第一行循环到最后一行坐标,即可得出最多可以掉落到哪一行
逆时针旋转处理:
根据当前方块类型变量,以及方块当前旋转状态,结合二维列表变量判断,举例:
如果是11竖立长条形,旋转中心点取从上往下第2个方块
那么根据旋转后需要占用的位置,需要判断(1,4)/(1,6)/(1,7)这3个位置在二维列表中的值必须是0才可以旋转
旋转完成后应该左上角坐标应该从(0,5)变成(1,4),方块当前旋转状态从11变成12
请看下面的示意图:
那么,顺时针旋转和这个类似,只是选择后的左上角左边变量变化,以及方块当前旋转状态值变化
具体代码实现
由于篇幅所限,这里只能大概描述核心的一些代码实现方式
开发准备:
首先取注册一个AppleID
然后在Mac电脑上安装好Xcode开发软件
引入相关工具开发包:
导入cocos2d开发工具包以及需要的一些系统Frameworks
数据操作类:
AllData.h
#define SIZE 24
#define WIDTH 320
#define HEIGHT 480
@interface AllData : NSObject
@property int next;
@property int current;
@property int currentstatus;
@property int posx;
@property int posy;
@property int alllines;
@property (nonatomic,retain) NSMutableArray *numberdatas;
//取得当前类的实例
(AllData *) sharedAllData;
//初始化棋盘
-(void)initAllData;
//取得下一个方块
-(int) getNextValue;
//逆时针旋转当前方块
-(void)changeLeft;
//顺时针旋转当前方块
-(void)changeRight;
//判断是否可以下移当前方块
-(boolean)canMoveDown;
//处理消除慢行操作
-(void)removeLines;
@end
存储控制类:
DBUtil.h
@interface DBUtil : NSObject
(NSString *)dataFilePath;
(void)initDataBase;
//存储一局游戏消除行数数字
(void)insertOneData:(int)topnumber;
//取得最大的8个记录数:消除行数
(NSMutableArray *)getListDataFromDb;
@end
方块绘画类:
#import "CommonUtil.h"
#import "AllData.h"
@implementation CommonUtil
//绘画棋盘当中的一个格子
(void) drawOneNumber:(int)number pos:(CGPoint)pos layer:(CCLayer*)layer {
CCSpriteBatchNode *numbatch = [CCSpriteBatchNode batchNodeWithFile:[NSString stringWithFormat:@"num_%d.png",number] capacity:15];
numbatch.anchorPoint = CGPointZero;
[numbatch setPosition:pos];
[layer addChild:numbatch];
CCSprite *sprite1 = [CCSprite spriteWithTexture:numbatch.texture rect:CGRectMake(0, 0, SIZE-2, SIZE-2)];
sprite1.position = ccp(0,0);
sprite1.anchorPoint = CGPointZero;
[numbatch addChild:sprite1];
}
// 绘画整个棋盘
......
启动进入主界面:
@implementation AppDelegate
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
......
[[AllData sharedAllData] initAllData];
[DBUtil initDataBase];
[[CCDirector sharedDirector] runWithScene: [MainLayer scene]];
.......
状态栏和工具栏:
@interface ToolLayer : CCLayer {
}
@implementation ToolLayer
- (void) drawTool {
[self removeAllChildrenWithCleanup:YES];
//画底部背景
CCSprite *bg = [CCSprite spriteWithFile:@"tool_bootom_back.png"];
bg.anchorPoint = CGPointZero;
[self addChild:bg z:0 tag:0];
//排行按钮
CCMenuItem *gold = [CCMenuItemImage itemFromNormalImage:@"gold.png" selectedImage:@"gold_pressed.png" target:self selector:@selector(gold:)];
//关于按钮
CCMenuItem *about = [CCMenuItemImage itemFromNormalImage:@"about.png" selectedImage:@"about_pressed.png" target:self selector:@selector(about:)];
//重新开始按钮
CCMenuItem *restart = [CCMenuItemImage itemFromNormalImage:@"restart.png" selectedImage:@"restart_pressed.png" target:self selector:@selector(restart:)];
......
// 绘画消除行数的图标
// 绘画消除行数的数字
// 绘画下一个方块的图标
- (void) restart:(id) sender
{
[[AllData sharedAllData] initAllData];
MapLayer *mapLayer = (MapLayer *)[[CCDirector sharedDirector].runningScene getChildByTag:0];
[mapLayer startGame];
[self drawTool];
}
棋盘滑动手势控制方法:
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSSet *allTouches = [event allTouches];
switch ([allTouches count])
{
case 1:
{
UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
single = [touch1 locationInView:[touch1 view]];
} break;
default:
break;
}
}
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSSet *allTouches = [event allTouches];
switch ([allTouches count])
{
case 1:
{
UITouch *touch1 = [[allTouches allObjects] objectAtIndex:0];
CGPoint singleend = [touch1 locationInView:[touch1 view]];
float x = single.x - singleend.x;
float y = single.y - singleend.y;
if (x*x > y*y && x*x > 2500 && x > 0) {
//向左横向滑动超过50
NSLog(@"左");
[self changeLeft];
}else if (x*x > y*y && x*x > 2500 && x < 0) {
//向右横向滑动超过50
NSLog(@"右");
[self changeRight];
}else if (x*x < y*y && y*y > 2500 && y < 0) {
//向下纵向滑动超过50
NSLog(@"下");
[self moveDown];
}
} break;
default:
break;
}
}
主界面程序:
@interface MapLayer : CCLayer {
}
@implementation MapLayer
-(void) startGame{
[self removeAllChildrenWithCleanup:YES];
int toppos = 0;
for (NSMutableArray *onerow in [AllData sharedAllData].numberdatas) {
int leftpos = 0;
toppos = toppos SIZE 1;
for (NSNumber *onepos in onerow) {
leftpos = leftpos SIZE 1;
[CommonUtil drawOneNumber:[onepos intValue] pos:CGPointMake(leftpos, toppos) layer:self];
}
}
// 设置定时器处理函数,定时间隔时间1秒
......
}
//定时器处理函数
//判断当前方块如果可以往下移动,则向下移动,修改二维列表变量
//如果不可以下移了,则判断是否可以消除某行,如果消除了某行则上方的所有行的值整体下移一行
//如果不可以下移也不可以消除了,则将下一个方块的数值赋值给当前方块,随机数生成下一个方块
//然后判断当前方块是否可以放入棋盘最上方的中间位置,如果可以放入则修改二维列表变量,如果不能放入,则游戏结束
......
具体代码这里不贴了,有了详细的算法程序设计和数据存储类型,要实现出来并不是太难,只是需要耐心细心而已。
游戏测试
游戏的主体程序完成后,就可以一边测试一边修改
测试的时候要注意测试各种边界情况,例如
将当前方块移动到最左边,看看碰到边界的时候会不会出错
将当前方块卡入一个正好插入的空槽形状中,看程序是不是会出错
等待当前方块掉入一个空槽,然后立刻旋转,理论上应该不能旋转了,测试看看程序会不会出错
测试一次性消掉4行,看看程序是不是会出错
如果自己测试的差不多了,就可以将程序打包发送给朋友测试
有时候,开发的人很难测试自己编写的程序,但是反而让别人可以测试出来很多问题
游戏发布
下面介绍一下大概的发布流程,让大家有个初步印象,详细的发布流程网上可以搜索到很多
游戏测试到基本没有错误之后,就可以将游戏发布到苹果的AppStore了
发布App需要购买苹果的开发者账号,一年是99美金,目前用信用卡支付也很方便
然后登陆https://developer.apple.com,进行一些证书的设置
生成好证书之后,将证书下载到Mac电脑中导入到Xcode之中
然后使用Xcode进行编译和打包好一个ipa文件
然后登陆https://itunesconnect.apple.com创建一个App,填写一些介绍信息,需要一些App的截图
然后回到Xcode使用Application Loader这个工具软件将ipa文件上传到itunesconnect当中
然后回到itunesconnect网站上提交App
然后就是等待苹果AppStore的审核,一般7-10个工作日可以完成审核
完成审核之后,你的App就会出现在苹果手机的AppStore里面了,就可以搜索到了
然后就可以告诉你的朋友们,让他们大吃一惊吧。
往期教程
因为教程是系列教程,前后关联性非常强,请大家按照微信公众号【零基础学编程】的历史消息发布时间先后次序进行阅读。