Android制作贪吃蛇游戏
来源:互联网 发布:如何提升淘宝买家等级 编辑:程序博客网 时间:2024/04/30 10:47
网络112 梁海亮
打开eclipse新建项目TCS。项目结构:
:
然后开始编写java代码:
TCSActivity.java代码:
package lianghailiang.f;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;public class TCSActivity extends Activity implements OnClickListener {gameView game; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); game=new gameView(this); setContentView(game); game.setOnClickListener(this); }public void onClick(View arg0) {// TODO Auto-generated method stubgame.s.ZengZhang();}public boolean onKeyDown(int keyCode, KeyEvent event){switch(keyCode){case KeyEvent.KEYCODE_DPAD_UP:game.s.GaiBianFangXiang(1);return true;case KeyEvent.KEYCODE_DPAD_DOWN:game.s.GaiBianFangXiang(2);return true;case KeyEvent.KEYCODE_DPAD_LEFT:game.s.GaiBianFangXiang(3);return true;case KeyEvent.KEYCODE_DPAD_RIGHT:game.s.GaiBianFangXiang(4);return true;}return true;}}
gameView.java代码:
package lianghailiang.f;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.view.View;public class gameView extends View implements Runnable {Bitmap bmp;Thread thread;public She s;public gameView(Context context){super(context);bmp=Bitmap.createBitmap(600,400,Config.ARGB_8888);s=new She(30,30,3,6);thread=new Thread(this);thread.start();}public void run() {// TODO Auto-generated method stubwhile(thread!=null){this.postInvalidate();try{Thread.sleep(300);}catch(InterruptedException e){e.printStackTrace();}}}protected void onDraw(Canvas canvas){super.onDraw(canvas);s.YiDong();s.hua(bmp);canvas.drawBitmap(bmp, 0, 0, null);}}
Kuai.java:
package lianghailiang.f;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Rect;public class Kuai {public int hang, lie;public int BianChang;public int YanSe;public void Hua(Bitmap bmp){Canvas c=new Canvas(bmp);Rect rc=new Rect(lie*BianChang, hang*BianChang,(lie+1)*BianChang,(hang+1)*BianChang);Paint paint = new Paint();paint.setColor(YanSe);paint.setStyle(Style.STROKE);paint.setStrokeWidth(2);c.drawRect(rc, paint);}}
She.java:
package lianghailiang.f;import java.util.LinkedList;import java.util.List;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;public class She {private List<Kuai> k;private int fangXiang;private int BianChang;public She(int hang,int lie,int fangxiang,int BianChang){this.fangXiang=fangxiang;this.BianChang=BianChang;k=new LinkedList<Kuai>();Kuai tou=new Kuai();tou.hang=hang;tou.lie=lie;k.add(tou);Kuai shen=new Kuai();shen.hang=tou.hang;shen.lie=tou.lie+1;k.add(shen);}public void hua(Bitmap bmp){Canvas c=new Canvas(bmp);c.drawColor(Color.BLACK);for(int i=0;i<k.size();i++){k.get(i).BianChang=BianChang;k.get(i).YanSe=Color.WHITE;k.get(i).Hua(bmp);}}public void ZengZhang(){Kuai kk=new Kuai();Kuai k1=k.get(k.size()-1);Kuai k2=k.get(k.size()-2);kk.hang=k1.hang+(k1.hang-k2.hang);kk.lie=k1.lie+(k1.lie-k2.lie);k.add(kk);}public void YiDong(){for(int i=k.size()-1;i>=1;i--){k.get(i).hang=k.get(i-1).hang;k.get(i).lie=k.get(i-1).lie;}if(fangXiang==1)k.get(0).hang--;else if(fangXiang==2)k.get(0).hang++;else if(fangXiang==3)k.get(0).lie--;elsek.get(0).lie++;}public void GaiBianFangXiang(int fx){if(fangXiang==2&&fx==1)return;if(fangXiang==1&&fx==2)return;if(fangXiang==3&&fx==4)return;if(fangXiang==4&&fx==3)return;fangXiang=fx;}}
运行结果:
鼠标点击虚拟机屏幕蛇体变长,点击虚拟机方向键改变蛇体移动方向。
- Android制作贪吃蛇游戏
- Qt制作贪吃蛇游戏
- Android 贪吃蛇游戏小结
- 【游戏制作】 从零开始的Qt5贪吃蛇代码分析
- C语言制作游戏——贪吃蛇
- 字符游戏——简单贪吃蛇的制作
- Android App 源码分析(贪吃蛇游戏)
- Android 给贪吃蛇游戏加背景音乐
- 【Android手机游戏】贪吃蛇(1)
- 贪吃蛇制作
- 贪吃蛇的制作
- 自学制作贪吃蛇
- 贪吃蛇游戏
- brew贪吃蛇游戏
- 贪吃蛇游戏
- 贪吃蛇游戏
- 游戏 贪吃蛇!
- 贪吃蛇游戏
- winform的执行原理
- java读取properties文件内容
- 参与评选开源软件名单
- WinRT界面控件Essential Studio使用教程:条码控件
- 读写文件1——以字节为单位,读写文件(笔记实例)
- Android制作贪吃蛇游戏
- 设计模式六大原则(1):单一职责原则
- Keil MDK从未有过的详细使用讲解
- IE6、IE7、IE8、Firefox、Opera、谷歌浏览器、Safari CSS hack区分,浏览器兼容性
- 使用HTML5、CSS3和jQuery增强网站用户体验
- ibatis 中 $与#的区别
- RDLC报表中的动态SQL
- vi 命令 用法
- C# Retry重试操作解决方案(附源码)