手把手教你做一个2048 上

本文是关于Android版2048游戏的开发教程,介绍了游戏的背景、核心玩法以及实现所需的功能。作者定义了游戏的抽象类,包括初始化、动画判断和合并逻辑,并提供了部分代码示例。下篇将探讨如何结合安卓开发知识创建游戏界面。
摘要由CSDN通过智能技术生成

目录

 

0 简介

1 什么是2048


0 简介

闲来无事,搞了个2048玩玩,源码放到了github上了,先上链接 https://github.com/tzx666/Android2048

现在已经实现的功能有

经典模式

自定义模式

历史查看、游玩、删除自己自定义的模式

还没有实现的功能有

游戏的动画、声音

后台功能、创意上传、图片合并等

效果图

 

1 什么是2048

2048是一种游戏,核心玩法是通过左滑右滑上滑下滑去合并相同的数字,如果到达了2048则判定为胜利,如果已经无法再滑动了则可以判断失败

那么我们便可以构思出这个游戏必然有以下功能

1 基础背景,一个4*4的游戏棋盘,这里我们使用一维数组作为底层实现

2 滑动的合并与判断

3 随机位置的生成

4 游戏胜利和结束条件的判断

5 引申而来的,我们同样可以对游戏使用mvc架构,即游戏显示什么和实际逻辑是什么并无关系,只要定义符合合并机制,那么无论显示什么都是合理的(雾)

2 抽象类的定义

根据上述的描述,我们不难定义出接口(其实应该用抽象类更合理的说)

interface Game2048 {
    fun init(context:Context);
    fun init(context:Context,size:Int);
    fun start();
    fun moveleft();
    fun moveright();
    fun moveup();
    fun movedown();
    fun addRanrom();
    fun isEnd();
    fun isFirstVisiable(position:Int):Boolean;
}

其中 init()负责初始化数组,isFirstVisiable()负责动画出现的判断,movexx函数负责游戏过程中的合并

3 游戏逻辑的实现

2048的游戏逻辑比较简单,参考代码应该很好懂

/*
*@author tzx
*@descrption 2048的逻辑实现
*/
public class Game2048impl implements Game2048 {
    private  int score;
    private  int[] map;
    private boolean[] isfirstAppe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值