Android 开发第四弹:围住神经猫(简单Demo)

本文介绍了一个简单的Android游戏——围住神经猫的开发过程,包括游戏背景元素定义、初始化、重绘和触控处理、胜负判断以及神经猫的移动逻辑。代码已上传至Github,欢迎Fork和贡献。
摘要由CSDN通过智能技术生成

前言

如下图所示,这篇文章要完成的就是这个简单的示例,后续会继续添加上动画和声音。这里主要包含了游戏的一些简单元素和逻辑。

在我的多次尝试后发现想赢它还是挺难的……毕竟它的走法不是简简单单的Random而已。

这里写图片描述

代码已经上传至Github,建议大家直接Fork而不是Download,毕竟开源的意义在于彼此分享代码,而且这个太简单了,后续肯定还会继续更新的,所以……

游戏背景元素的定义

由于代码还会继续更新,所以博客中只是简单的介绍一下,而且我都写好了注释。

如大家所见的,背景中有许多的点,这里就定义一个Dot类即可。

关于Dot类,它显然应该有坐标X、Y,还有一个状态,那么这个状态具体有哪些呢?

1,点击后开启路障,这里设为红色
2,未点击时路障为关闭状态,这里设为灰色
3,神经猫所在的位置自然也应该是一个状态,毕竟这个位置玩家不能再去点击了

然后设置相应的构造函数。

package myapplication.nomasp.com.catchcrazycat;

/**
 * Created by nomasp on 2015/09/25.
 */

public class Dot {
   
    int x, y;
    int status; // 灰色:猫可以走,红色:以及被设置为路障,橘色:猫的位置
    public static final int STATUS_ON = 1;  // 开启路障(红色)
    public static final int STATUS_OFF = 0;   // 关闭路障(灰色)
    public static final int STATUS_IN = 9;   // 神经猫的位置

    public Dot(int x, int y) {
        super();
        this.x = x;
        this.y = y;
        status = STATUS_OFF;
    }

    public void setXY(int x, int y){
        this.x=x;
        this.y=y;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }
}

初始化游戏

游戏的背景等我们全都放在Playground类中。

在初始化游戏之前,我们首先需要定义一个Dot类型的二维数组用于保存这些游戏中的原点,我这里就称之为游戏元素好了。

然后还需要为神经猫实例化,它本质上也是Dot类型的。

    private Dot matrix[][];  // 声明数组matrix来保存游戏元素
    private Dot cat;    // 猫

当然了,行与列,还有路障,这些都可以设置为static且final的,如果你希望在游戏中设置不同的难度对应不同的行列和路障后续可以再修改。

    private static final int COL = 10;   // 每列有10个元素
    private static final int ROW = 10;   // 每行有10个元素
    private static final int BLOCKS = 15;   // 默认添加的路障数量

下面就是初始化游戏的方法,最后的输出是测试使用的,为了方便我这种初学者的学习也就没有删掉。

   private void initGame(){
        for (int i = 0; i < ROW; i++){
            for (int j = 0; j < COL; j++){
                matrix[i][j].setStatus(Dot.STATUS_OFF);
            }
        }
        cat = new Dot(ROW/2,COL/2);   // 初始化猫的位置
        getDot(ROW / 2, COL / 2).setStatus(Dot.STATUS_IN);  // 初始化猫所在位置的状态
        
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值