手把手教你开发2048!〖一〗

最近一款游戏在android和ios端,甚至web端都非常火,这款游戏就是2048。相信不少朋友都玩过了。

这款游戏易上手,可玩度高,对配置的要求可忽略不计,让它迅速占领了各项下载排行榜的显眼位置。

我特意琢磨了一下该款游戏,以前在github上也看见过开源的源码。这一次总结经验,用最简单的方式,让大家迅速开发出属于自己的2048游戏。


下面我从三个大点来写开发步骤,将游戏分解成几个关键的步骤之后,就发现开发一个2048其实并不困难。如果你还会PS/AI/DS/3D,设计一款自己的动画、图片,应用就更完美了。


废话不多说,马上开始开发之旅!



【开发过程】


为了方便,我把必要工具类没有另外新建包,按正规程序而言,大家应该建立util工具包,把这些工具类方法统一保管。

开发过程思路是

界面设计→事件实现→算法判断→过程处理


第一步:

◆『界面设计』

由于主要为了展示游戏,界面上我只提供给大家核心思路,具体的外层布局,怎么好看大家可以怎么设计。

这里我使用了最外层的linearlayout布局。

在该布局下,我们先使用一个GirdView布局。使用GirdView的好处就是,它是著名的九宫棋的布局形式。而我们的2048可以看成是4X4的一个棋盘。每个棋盘位上填充了不同的数字。这就是思路。


GirdView的布局形式确定下来后,为了方便,我们不妨自定义一个GridView控件,方便后面更多的自由度高的操作。


我们在src主包下新建一个类:

gameview,让它继承GirdLayout


接着把它的构造方法都实现了:


public class gameView extends GridLayout {


	public gameView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		
	}

	public gameView(Context context, AttributeSet attrs) {
		super(context, attrs);
		
	}

	public gameView(Context context) {
		super(context);
		
	}


我们顺便把布局文件里的girdview控件名字改为我们的类:

<com.fengzhengfang.game2048.gameView
        android:id="@+id/GView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </com.fengzhengfang.game2048.gameView>

前面的"com.fengzhengfang.game2048"是包名,大家自己替换为自己命名的包名即可。


接着,为了记录游戏分数,我们在girdview控件上定义两个textview:

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/score" />


        <TextView
            android:id="@+id/tvScore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

这样我们的布局文件基本构建完毕,我们这时可以考虑给游戏加一个最高分的记录功能,为此再添加两个控件:

<TextView
             android:id="@+id/highs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:text="@string/highscore" />
         <TextView
             android:id="@+id/highscore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/highs"
             />

*注意,我在这里,为了界面实现美观,在最外层线性布局的情况下又嵌套了一层相对布局,大家可以根据具体情况自己设计。

好了,第一步就算实现完了,我们在Manifest清单文件中配置一下新的activity,并且把屏幕方向指定(为了游戏界面设计时参考数值要么为高,要么为宽,恒定):

<activity
            android:name="com.fengzhengfang.game2048.splash"
            android:label="@string/app_name" 
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
           android:name="com.fengzhengfang.game2048.gameView"
             >  
        </activity>

OK,第一步完成。要继续开发,请看我的下一篇《手把手教你开发2048!〖二〗》



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值