`
wo_deqing
  • 浏览: 64196 次
文章分类
社区版块
存档分类
最新评论

Android游戏基础

 
阅读更多

一、游戏分析

1、你需要考虑以下问题:

a)界面

苹果

b)游戏逻辑

蛇走动

蛇的控制

苹果随机出现

蛇吃掉苹果

蛇长度增加

游戏在运行中,蛇的走动,转弯,吃掉苹果,怎么计算?二维数组实现,一个地图:map[x][y],墙边界、蛇的走边,吃苹果,都依靠坐标定位。

本游戏中有三种类型图片:墙,苹果(绿色),蛇头(红色),蛇身(黄色)

贪吃蛇游戏在游戏开发中碰撞检测属于“地图格子划分检测”。

即在游戏开发时,把屏幕划分成点阵的格子组成。

二、图形绘制

动态图形绘制:

动态图形绘制的基本思路:创建一个类继承View类(或继承SurfaceView类),覆盖onDraw方法,使用Canvas()对象在界面上绘制不同的图形,使用invalidate()方法刷新界面。

Canvas画布android.graphics提供一些画图形的方法

Paint画笔用来描述图形的颜色和网格

Color颜色颜色常量和创建颜色的方法RGB

Path指定路径如要画圆时,需要指定圆心和半径,Path一般用来从某个点移动到另一个点连线

三、游戏实现

1、初始化地图坐标。

前提一:屏幕的宽和高,在程序一开始就获取屏幕的宽和高。

protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){....}

w,h即为屏幕的宽和高。

前提二:地图的行数和列数,初始化地图数组map。

这些初始化的工作,在第一次加载时会首先调用onSizeChanged方法。

xcount=(int)Math.floor(w/size);

ycount=(int)Math.floor(h/size);

xoffset=(w-(xcount*size))/2;

yoffset=(h-(ycount*size))/2;

map=newint[xcount][ycount];

2、把图片加载进来,将用不同类型的图片绘制墙,蛇和苹果

publicvoidloadPic(intkey,Drawabledrawable){

Bitmapbitmap=Bitmap.createBitmap(size,size,Bitmap.Config.ARGB_8888);

Canvascanvas=newCanvas(bitmap);

drawable.setBounds(0,0,size,size);

drawable.draw(canvas);

pics[key]=bitmap;

}

3、为地图数组赋值的方法:

publicvoidsetTile(intpicIndex,intx,inty){

map[x][y]=picIndex;

}

4、初始化边界墙。计算出边界,对map进行赋值。

publicvoidbuildWall(){

//横向

for(intx=0;x<xcount;x++){

setTile(GREEN_STAR,x,0);

setTile(GREEN_STAR,x,ycount-1);

}

//纵向

for(inty=0;y<ycount;y++){

setTile(GREEN_STAR,0,y);

setTile(GREEN_STAR,xcount-1,y);

}

}

5、绘制墙(边界)交给onDraw()方法。实际上蛇的走动,苹果出现,就是由此方法画出来。

for(intx=0;x<xcount;x++){

for(inty=0;y<ycount;y++){

//理解map[x][y]==0的情况

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

canvas.drawBitmap(pics[map[x][y]],

xoffset+x*size,

yoffset+y*size,

paint);

}

}

}

关键是给地图数组赋值,赋值不同的值,绘制出边界,蛇,苹果,不断的重绘,就动起来了。


6、游戏结束

if(newHead.x<1||newHead.y<1||newHead.x>xcount-2||newHead.y>ycount-2){

setMode(LOSE);

}

7、产生随机苹果,需要进行冲突检查

privatevoidaddRandomApple(){

CoordinatenewCoor=null;

booleanfound=false;

while(!found){

intnewX=1+RNG.nextInt(xcount-2);

intnewY=1+RNG.nextInt(ycount-2);

newCoor=newCoordinate(newX,newY);

booleancollision=false;

for(intindex=0;index<snakeTrail.size();index++){

if(snakeTrail.get(index).equals(newCoor)){

collision=true;

}

}

found=!collision;

}

appleList.add(newCoor);

}

8、苹果的图形

publicvoidupdateApple(){

for(Coordinatec:appleList){

setTile(YELLOW_STAR,c.x,c.y);

}

}

9、蛇吃掉苹果

for(intappleIndex=0;appleIndex<appleLength;appleIndex++) {

Coordinatec=appleList.get(appleIndex);

if(c.equals(newHead)){

appleList.remove(c);

addRandomApple();

growSnake=true;

}

}

//当蛇吃掉苹果后,增加长度

snakeTrail.add(0,newHead);

if(!growSnake){

snakeTrail.remove(snakeTrail.size()-1);

}

四、分步实现

1、画出一个图形

2、画出墙

3、画出蛇

4、移动的蛇

5、判断蛇触到墙,重新开始游戏

6、产生随机的苹果

7、蛇吃掉苹果,蛇变长



<wbr></wbr>
分享到:
评论

相关推荐

    android游戏编程实例基础

    "Android游戏编程实例基础"这个主题旨在引导初学者逐步掌握Android游戏开发的基本技能。本资源提供了一个详细的实例教程,即《从零开始Android游戏编程(第二版)》,这本书是学习Android游戏开发的优秀教材。 首先...

    android游戏开场动画源代码

    本篇文章将详细解析`android游戏开场动画源代码`,并围绕`android 游戏源代码`、`android 游戏`以及`android动画`这三大标签展开讨论。 首先,我们来探讨一下Android游戏源代码。源代码是游戏的灵魂,它包含了游戏...

    android游戏开发基础视频

    http://video.sina.com.cn/playlist/4003320-1320045357-1.html#33844107?Android游戏及应用开发之2? http://video.sina.com.cn/playlist/4003320-1320045357-1.html#33845175?Android游戏及应用开发之3? ...

    Android手机游戏开发有关资料

    "Android游戏基础.pdf"可能专注于Android平台上游戏开发的具体技术,如Android游戏框架的选择(如libGDX、Unity、Cocos2d-x等)、游戏编程原理、多线程处理、触摸事件处理、游戏状态管理等。这些内容将帮助开发者...

    千锋Android游戏开发基础视频教程(10集)

    教程名称: 千锋Android游戏开发基础视频教程(10集)【】千锋Android游戏开发基础视频教程-大纲【】千锋Android游戏开发基础视频教程01~02【】千锋Android游戏开发基础视频教程03~04【】千锋Android游戏开发基础...

    Android小游戏源码

    【Android小游戏源码】是一个适合初学者学习的项目,它基于Eclipse开发...这个源码项目是实践和学习Android游戏开发的宝贵资源,不仅可以帮助初学者掌握基本技能,还能激发他们进一步探索更复杂的Android游戏开发技术。

    android游戏小Demo

    本“android游戏小Demo”就是一个很好的起点,它提供了基础的游戏开发框架,帮助学习者理解Android游戏开发的基本概念和流程。 首先,我们来讨论Android游戏开发的基础。Android游戏通常基于Java或Kotlin语言编写,...

    android游戏开发基础小球运动

    在Android游戏开发的基础阶段,小球运动是一个常见的学习主题,它可以帮助开发者理解基本的游戏物理引擎、碰撞检测以及动画原理。这个教程可能包含了如何创建一个简单的2D游戏,其中一个小球在屏幕上移动并与其他...

    基于Android的拼图游戏APP源码,Android拼图游戏APP源码,Android小游戏源码

    总的来说,这个基于Android的拼图游戏APP源码为我们提供了深入学习Android开发的机会,涵盖了从基础的UI设计到高级的游戏逻辑实现等多个方面。通过对源码的阅读和学习,开发者可以提升自己的Android编程技能,并且对...

    Android游戏编程之二(Android游戏编程基础)

    本教程将探讨Android游戏编程的基础,包括使用的游戏开发工具、框架和编程语言,以及如何利用这些资源来创建互动性强、用户体验良好的游戏。 首先,Android游戏开发主要基于Java或Kotlin这两种官方支持的编程语言。...

    Android游戏源码合集

    【Android游戏源码合集】是一个集合了多个Android平台游戏的源代码资源,对于...这是一个从理论到实践,从基础到高级的全面学习过程,对于任何想在Android游戏开发领域有所建树的人来说,都是一个不可多得的学习资源。

    android游戏开发毕业论文

    随着智能手机的普及和移动游戏市场的蓬勃发展,Android游戏开发已成为计算机科学及软件工程领域的重要研究方向。本文基于Android平台开发了一款解谜游戏,旨在探讨开发过程中的关键技术和设计理念,并分析了游戏的...

    android小游戏源码.rar

    通过对这个"android小游戏源码"的深入学习,开发者不仅可以了解Android游戏开发的基本流程,还能掌握优化游戏性能、提升用户体验的各种技巧。无论是新手还是经验丰富的开发者,都能从中获益良多。

    Android游戏编程书

    通过阅读此书,读者可以深入理解Android游戏开发的基础知识和核心技术。 首先,书中会涵盖Android开发环境的搭建,包括安装Android Studio、配置模拟器或连接物理设备进行测试,以及理解Android SDK的基本使用。...

    [Android游戏源码]-简单的贪吃蛇源码.rar_Android游戏源码_android_android 贪吃蛇_贪吃蛇_贪

    通过对这个"简单的贪吃蛇源码"的分析,我们可以了解到Android游戏开发的基本流程和技巧,这对于想要学习Android游戏开发的开发者来说是非常有价值的。通过实践这样的源码,不仅可以提高编程技能,还能深入理解游戏...

    android 投篮游戏 源码

    1. **Android游戏开发基础** - Android游戏开发通常基于Java或Kotlin语言,本项目可能采用其中一种。了解这两种语言的基本语法和面向对象编程概念是必不可少的。 - 使用Android Studio作为集成开发环境(IDE),它...

    Android 游戏编程 ppt

    这份“Android游戏编程ppt”提供了一套详尽的教程,帮助开发者深入理解和掌握Android游戏开发的核心概念。以下是对该PPT内容的详细解读: 1. **Android环境搭建**:首先,开发者需要安装并配置Android Studio,这是...

    Android游戏源码安卓单机3D赛车游戏项目.zip

    通过这个项目,开发者不仅可以学习到Android应用开发的基础,还能深入了解3D游戏开发的高级技术,这对于提升Android游戏开发能力非常有帮助。同时,这个项目也适合作为实践和研究Android游戏性能优化、用户体验设计...

    Android 游戏 Demo 学习

    1. **Android Studio**: Android游戏开发的基础工具是Android Studio,这是一个集成开发环境(IDE),提供了编写、调试和优化Android应用的所有必要功能。熟悉其界面、布局以及如何创建新项目是入门的第一步。 2. *...

Global site tag (gtag.js) - Google Analytics