当前位置: 首页 > 新闻 > Android 游戏开发经典制作方法

Android 游戏开发经典制作方法

来源:汇众教育 编辑:小汇 2021-07-27 232

摘要:开发过手机游戏的人就知道手机开发的三要素: 画布(用来绘画游戏的画面)键盘事件,实时刷新。 我们知道一般的游戏画面都是由地图, 精灵(由游戏的主角,怪物组成), 那我们现在就看看贪吃蛇是怎样他的地图的: 一、实现游戏的界面 : 1、 先声明用来存放绘画图像的X,Y轴的位置的数组:

【内容导航】

第1页:一、实现游戏的界面

第2页:二、实现键盘事件

第3页:三、 刷新

      贪吃蛇, 打开了手机游戏的先河。 NOKIA公司在发展手机游戏上的一次成功尝试。让手机游戏玩家们爱不释手,引起了手机游戏的开发风暴,各个手机厂商纷纷加入这个阵营。手机游戏开发从此拉开了序幕。Android, OPhone OS作为手机开发的后起之秀, 肯定不会错过这份蛋糕的分享。它不仅解决了以住手机游戏的不足(屏幕分辨率小, 内存少)的毛病。而且还在手机游戏软件开发上提供更全, 更新的API ,更大的内存, 而且还可以用JAVA的泛形, 提高他的开发速度。 现在我们就以ANDROID SDK 里面自带的贪吃蛇作为例子, 去看看这个贪吃蛇是怎么去开发。

 

     开发过手机游戏的人就知道手机开发的三要素: 画布(用来绘画游戏的画面)键盘事件,实时刷新。 我们知道一般的游戏画面都是由地图, 精灵(由游戏的主角,怪物组成), 那我们现在就看看贪吃蛇是怎样他的地图的:

一、实现游戏的界面

1  先声明用来存放绘画图像的XY轴的位置的数组:

private int[][] mTileGrid;//

/***************

Tileindex 图片的索引

 X轴的位置:

 Y轴的位置:

    **************/

 2 编写存放图片索引用图片的XY轴位置;

public void setTile(int tileindex, int x, int y) {

        mTileGrid[x][y] = tileindex;

}

 

 3、调用以上的方法以循环的方式位置数组赋值以及图片的索引

private void updateWalls() {

 

        for (int x = 0; x < mXTileCount; x++) {

            setTile(GREEN_STAR, x, 0);//设置顶部的界线的位置

            setTile(GREEN_STAR, x, mYTileCount - 1);// 设置底部界线的

        }

        for (int y = 1; y < mYTileCount - 1; y++) {

            setTile(GREEN_STAR, 0, y);/设置左边的界线的位置

 

            setTile(GREEN_STAR, mXTileCount - 1, y);/设置右边的界线的位置

 

        }

}

4、重写VIEW 类里面的方法。 把界线画出。

 public void onDraw(Canvas canvas) {

        super.onDraw(canvas);

        for (int x = 0; x < mXTileCount; x += 1) {

            for (int y = 0; y < mYTileCount; y += 1) {

                if (mTileGrid[x][y] > 0) {

                    canvas.drawBitmap(mTileArray[mTileGrid[x][y]],

                           mXOffset + x * mTileSize,

                           mYOffset + y * mTileSize,

                           mPaint);

                }

 

    同上可见: 地图其实就是由图片数组拼直面成的。 面图片又是通过他的图片索引找到,并在mTileGrid[x][y],获取他们的位置索引来确定图片的位置。 这样在一个手机的页面就形成了,简单吧。

苹果的位置就是更简单了,他是随机生成的, 而且必须在现在蛇的位置相对远距离:

看看他的代码:

 private void addRandomApple() {

        Coordinate newCoord = null;

        boolean found = false;

        while (!found) {    //

            // Choose a new location for our apple

// 随机生成新的XY位置

            int newX = 1 + RNG.nextInt(mXTileCount - 2);

            int newY = 1 + RNG.nextInt(mYTileCount - 2);

            newCoord = new Coordinate(newX, newY);

 

                     boolean collision = false;

            int snakelength = mSnakeTrail.size();

            for (int index = 0; index < snakelength; index++) {

//      检查一下是存放的位置是否合理流

                if (mSnakeTrail.get(index).equals(newCoord)) {

                    collision = true;

                }

            }

       

            found = !collision;

        }

        if (newCoord == null) {

            Log.e(TAG, "Somehow ended up with a null newCoord!");

        }

        mAppleList.add(newCoord);// 添加到新苹果的列表中

    }

    汇众教育北京公主坟(游戏)校区,地处长安街沿线,周边有海淀高新技术产业园及石景山文化创意产业园。校区自2004年成立起来,被誉为游戏学院示范校区,创建精英型、学习型团队为不断追求目标,以教师和学生的发展为立足之本,07年评为全国十佳校区、08年评为体系内A级校区.

    汇众教育北京公主坟(游戏)校区周边聚集了北京工商大学,北京师范大学,北方工业大学、北京外国语学院等十几所全国知名重点院校,及北京西单图书大厦、北京军事博物馆,北京电视台,八一电影制片场,学习气氛浓郁、并且公主坟校区优越的地理条件引来众多游戏企业参观考察并与多家游戏企业进行项目合作及外包,使学员在此掌握最新游戏行业的动态,提前置身于工作环境中。

【点击咨询】 ↓↓↓

      点击这里给我发消息 点击这里给我发消息  点击这里给我发消息 点击这里给我发消息 点击这里给我,发消息

             

相关链接:↓↓↓

汇众教育北京公主坟游戏校区“大中专毕业生”阳光助学计

企业外包项目顺利完成【学员获奖金 边学习边赚钱】

《虚拟城市公园》外包项目顺利完成

案例分析:初中毕业生的游戏之路

案例分析:大学毕业生的黄金职

《非常静距离》学员与明星亲密接触

‖JL_STAR‖
【内容导航】

第1页:一、实现游戏的界面

第2页:二、实现键盘事件

第3页:三、 刷新

2)  实现键盘事件:

   键盘主要起操作作用, 在任何的手机游戏中键盘都是起重要的用,要本游戏中, 他就是起控制蛇的行走方向: 现在我们分析他的代码:

        if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {

            if (mDirection != NORTH) {

                mNextDirection = SOUTH;

            }

            return (true);

        }

 

        if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {

            if (mDirection != EAST) {

                mNextDirection = WEST;

            }

            return (true);

        }

 

        if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {

            if (mDirection != WEST) {

                mNextDirection = EAST;

            }

            return (true);

        }

以上的代码大家一看就明白 就是通过判断那个键按下 然后再给要走的方向mDirection赋值。

以下的代码就是通

    switch (mDirection) {

&,nbsp;,;       case EAST: {

            newHead = new Coordinate(head.x + 1, head.y);

            break;

        }

        case WEST: {

            newHead = new Coordinate(head.x - 1, head.y);

            break;

        }

        case NORTH: {

            newHead = new Coordinate(head.x, head.y - 1);

            break;

        }

        case SOUTH: {

            newHead = new Coordinate(head.x, head.y + 1);

            break;

        }

       

从以上的键盘代码我们可以看得出,程序中是通过触发来改变坐标(+1-1)的方式来改蛇头的方向, 可见坐标在游戏编程中的作用, 这个也是根据手机的屏幕是点阵的方式来显示, 所以坐标就是一个定位器。 在这里大家可能还有一个疑问。 就是就这个蛇什么能够以7字形来移动行走, 其实我们稍微仔细观察一下就知道了,在这里面, 他们也是通过坐标的传递来实现的, 只要把头部的坐标点依次赋给下一个点, 后面的每一个点都走过了头部所走过的点,而蛇的头部就是负责去获取坐标,整个蛇的行走起来就很自然和连贯。  坐标的方向变换又是通过判断那个方向按键的按下来改变的, 这样一来, 键盘的作用就发挥出来了。

    蛇吃苹果又是怎样去实现?上面我所说到的坐标就起了作用。在蛇所经过的每一个坐标, 他们都要在苹果所在的(ArrayList mAppleList = new ArrayList())坐标集里面集依次判断,若是坐标相同,那个这个苹果就被蛇吃了

    汇众教育北京公主坟(游戏)校区,地处长安街沿线,周边有海淀高新技术产业园及石景山文化创意产业园。校区自2004年成立起来,被誉为游戏学院示范校区,创建精英型、学习型团队为不断追求目标,以教师和学生的发展为立足之本,07年评为全国十佳校区、08年评为体系内A级校区.

    汇众教育北京公主坟(游戏)校区周边聚集了北京工商大学,北京师范大学,北方工业大学、北京外国语学院等十几所全国知名重点院校,及北京西单图书大厦、北京军事博物馆,北京电视台,八一电影制片场,学习气氛浓郁、并且公主坟校区优越的地理条件引来众多游戏企业参观考察并与多家游戏企业进行项目合作及外包,使学员在此掌握最新游戏行业的动态,提前置身于工作环境中。

 

【点击咨询】 ↓↓↓

      点击这里给我发消息 点击这里给我发消息  点击这里给我发消息 点击这里给我发消息 点击这里给我,发消息

             

相关链接:↓↓↓

汇众教育北京公主坟游戏校区“大中专毕业生”阳光助学计

企业外包项目顺利完成【学员获奖金 边学习边赚钱】

《虚拟城市公园》外包项目顺利完成

案例分析:初中毕业生的游戏之路

案例分析:大学毕业生的黄金职

《非常静距离》学员与明星亲密接触

上一篇 :无
下一篇 :无

相关文章

关注我们

  • 官方微信

    咨询热线

    010-82826482 校区地址
  • 官方微博

    建议与投诉

    400-0065-789 联系我们
  • 线上直播平台