参加了简书日更活动,计划写个2048游戏,之前没接触过swift(但本人有编程基础),每天写一点,今天终于将主体做完,还是挺有成就感的。立刻下到手机玩了会,还是挺开心的。真机效果图如下:
image.png今天只是在最后基础上增加了向左,向右滑动的处理,比之前想象中的要简单。同时简单的将合并后将分数加上合并的数字块上的数字。
向左滑动的处理:
// 向左移动
func moveLeft() {
for i in (0...DIM*DIM-1) {
// 最左边一列index分别为0,4,8,12
if(!isEmpty(index: i) && i % 4 != 0) {
// 向左index减1
var tmp = i
while(tmp % 4 != 0) {
move(fromIndex: tmp, toIndex: tmp-1)
tmp = tmp - 1
}
}
}
}
向右滑动处理
// 向右移动
func moveRight() {
for i in (0...DIM*DIM-1).reversed() {
// 最右边一列index分别为3,7,11,15
if(!isEmpty(index: i) && (i+1) % 4 != 0) {
// 向右index加1
var tmp = i
while((tmp+1) % 4 != 0) {
move(fromIndex: tmp, toIndex: tmp+1)
tmp = tmp + 1
}
}
}
}
下一步计划
下一步考虑加上音效和最高分保存功能,然后将代码再整理一下发个完整版的,代码其实比想象中简单很多,看了下核心代码才200来行。
往期文章
swift实现2048小游戏其它文章入口在下面,感兴趣的朋友可以进去看看,有问题可以给我留言哦,大家相互进步。
swift学习笔记
网友评论