android游戏源码 安卓小游戏源码

一、介绍

我花了两个下午写了一个吃蛇游戏,这个游戏我想写很久了。作为诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,曾经给我们的童年带来了很多乐趣。世界上的一切都变了。诺基亚曾经是手机行业的领导者,但现在它正在逐渐衰落并被收购。估计近期会退出手机业务,贪吃蛇这款游戏基本没人玩了,甚至在新生代的印象中也是如此。。。不过这个游戏在它的基础上改造后其实可以做出很多花样,确实可以在一定程度上锻炼它的编程能力。前不久激烈的蛇战,其实也可以看做是基于这款游戏的改造。所以,我也希望可以尝试,做一个有趣的版本。

二、贪食蛇游戏逻辑架构

android游戏源码 安卓小游戏源码

三、贪食蛇开发流程1、准备开发环境

(1)打开eclipse。
(2)新建一个SnakeGame项目,在该项目下新建一个Snake主类和一个Panel类;创建一个新文件夹:resource来存储资源。在这个文件下,新建两个文件夹:声音和图像,放入游戏需要的图片文件和音频文件。

图像音频资源链接:https://pan.baidu.com/s/1nm _ vpx HB _ jvngcufvxbwg
提取代码:jfdv。

2、设计游戏图纸3、画出白布窗口frame

JFrame frame = new JFrame();frame.setBounds(200,50,800,600);frame . setresizable(false);//设置窗口不能用frame . setdefaultclosure(jframe . exit _ on _ close)改变;frame . set visible(true);//使窗口可见4。将画布frame.add(new Panel())添加到窗口;5.将标题图像图标标题添加到画布;//在游戏界面的开头定义title.paintIcon(this,g,5,0);//用笔刷G 6绘制标题图标。在画布上添加一个黑色的游戏框,添加一个游戏背景图片(游戏区)g.fillRect(5,35,775,525);//用画笔g绘制游戏界面的黑盒g.drawImage(bj,5,35,this);//加一张游戏界面的背景图7。为(int I = 1;我& ltlenI++) {//不能从0开始,是用来存放蛇头的。Painticon (this,g,snake [i],snake[I]);}8.初始化snake公共void init snake(){ len = 3;snakex[0]= 55;//一定要注意初始坐标的选择,不能随意取。snakey[0]= 35;snakex[1]= 30;snakey[1]= 35;snakex[2]= 5;snakey[2]= 35;foodx = 5+25 * rand . nextint(30);//横坐标可以容纳30种食物。调用rand方法随机生成foody = 35+25 * rand . nextint(21);//纵坐标可以容纳21 foodfx = & # 34R & # 34;//重新初始化蛇头的方向,不然每次重新开始再过去都会撞到自己!得分= 0;}9、控制蛇的方向if(FX = = & # 34;R & # 34){ right.paintIcon(this,g,snakex[0],snakey[0]);//蛇头放在头节点,也就是第一个数组元素里} else if(FX = = & # 34;L & # 34){ left.paintIcon(this,g,snakex[0],snakey[0]);} else if(FX = = & # 34;U & # 34){ up.paintIcon(this,g,snakex[0],snakey[0]);} else if(FX = = & # 34;D & # 34){ down.paintIcon(this,g,snakex[0],snakey[0]);}10.放游戏开始提示和游戏结束提示//绘制游戏开始提示字符if(is started = = false){ g . set color(color . white);//重置画笔字体颜色g.setFont(新字体(& # 34;arial & # 34,字体。粗体+字体。斜体,45));//重置画笔字体类型,粗体,大小为g . drawstring(& # 34;按空格键显示时间& # 34;, 50, 475);//画出来放在坐标为(75,300) g.setColor(Color.red)的窗口中;begin.paintIcon(this,g,250,150);}//绘制游戏结束界面if(is failed){ g . set color(color . white);g.setFont(新字体(& # 34;arial & # 34,字体。粗体,40));g .拉绳(& # 34;按空格键重新启动& # 34;, 200, 360);g . set color(color . red);g.setFont(新字体(& # 34;arial & # 34,字体。粗体+字体。斜体,73));//用加号g . drawstring(& # 34;游戏结束!", 200, 250);fail.paintIcon(this,g,0,380);}11.按空键控制游戏开始。12.使蛇移动,如果(被启动&&!IsFailed) {//递归方法,每一个时钟周期,蛇移动一格,最后一个体的坐标变成前一个体的坐标,蛇头直接向前移动一格,绘制为(int I = len-1;我& gt0;I-){ snakex[I]= snakex[I-1];snakey[I]= snakey[I-1];} 13、实现转向if(FX = = & # 34;R & # 34){ snakex[0]= snakex[0]+25;//右移,横坐标加25if(snake[0]>;755)//向右移动超出边界时,蛇死亡,游戏结束失败();} else if(FX = = & # 34;L & # 34){ snakex[0]= snakex[0]-25;if(snakex[0]& lt;5)失败();} else if(FX = = & # 34;U & # 34){ snakey[0]= snakey[0]-25;if(snakey[0]& lt;35)失败();} else if(FX = = & # 34;D & # 34){ snakey[0]= snakey[0]+25;if(snakey[0]& gt;535)失败();}13.补充食物吃//蛇吃食物的时候身体会变长如果(snake[0]= = foodx & & snake[0]= = foody){吃。循环(2);foodx = 5+25 * rand . nextint(30);//食物吃完后,继续随机生成foody = 35+25 * rand . nextint(21);// 21是用黑盒的宽度525除以每个单元格的宽度25得到的,这一点很重要,否则运算会出错。//蛇身变长。分数=分值+100;//每吃一个食物,分数就会增加100}。14.游戏结束功能。背景音乐停止播放
游戏结束音乐响起
你走不动了
游戏结束界面弹出。

15、实现重新开始功能

这个游戏通过空键控制游戏的暂停和开始。如果游戏没有结束,按空暂停;如果游戏结束,按空重新开始游戏。

16、添加分数和长度

g . set color(color . white);//设置画笔字体颜色g.setFont(新字体(& # 34;中国行书& # 34;,字体。粗体,20));//设置画笔字体类型,粗体,大小为g . drawstring(& # 34;len:& # 34;+ len,550,24);//绘制len字符串g . drawstring(& # 34;分数:& # 34;+分数,630,24);//画一个乐谱字符串17,添加背景音乐18,让背景音乐循环播放bgm . loop(clip . loop _ continuously);//回收背景音乐19。实现音乐播放和停止私有void失败(){ over . loop(1);//游戏结束时播放死亡音乐bgm . stop();//游戏结束时暂停背景音乐isFailed = true//将游戏设置为结束状态}20。将源代码导出到一个可执行文件中(补充以空) (1)

(2)

(3)

找到游戏项目的主类
找到游戏的主类并选择导出的目的地
选择完成。

(4)成功导出到目的地

四、测试演示

1.视频链接:Ja贪吃蛇游戏演示
(由于视频无法上传,只能提供视频链接和部分截图)

2、游戏开始界面

3。有一个游戏结束界面。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论