网络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 stub

game.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 stub

while(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 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 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.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--;

else

k.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编程实现贪吃蛇游戏,Android制作贪吃蛇游戏相关推荐

  1. Love2D游戏引擎制作贪吃蛇游戏

    预览游戏 love2d游戏引擎重要函数 详情: love.load:当游戏开始时被调用且仅调用一次 love.draw:回调函数,每帧更新一次游戏画面 love.update:回调函数,每帧更新一次游 ...

  2. 次时代游戏的制作流程以及游戏美术需要掌握哪些基本软件

    我想很多接触游戏开发引擎的小伙伴们应该对"次世代建模"这个词都很熟悉,也有可能你是第一次接触这个词,觉得这是一门很复杂的技术,其实只要你用对方法去学习,就会没有那么复杂了. 本文在 ...

  3. android编程:调节视频画面分辨率,Android编程实现屏幕自适应方向尺寸与分辨率的方法...

    本文实例讲述了Android编程实现屏幕自适应方向尺寸与分辨率的方法.分享给大家供大家参考,具体如下: Android 屏幕自适应方向尺寸与分辨率,包括屏幕界面布局.多分辨率支持.获取屏幕尺寸.屏幕横 ...

  4. android 编程一个程序实现方法,Android中一个应用实现多个图标的几种方式

    前言 最近因为新需求需要,我的应用将有多个ICON入口..最终选择了 activity-alias,其实实现多图标有好几种方式,下面就给大家总结下,分享出来供大家参考学习: 1. 多Activity ...

  5. android编程用真机模拟,android编程的广播,模拟器可接受,但真机不可接受。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.动态注册 //接受广播 IntentFilter intentFilter = new IntentFilter(); intentFilter.ad ...

  6. Android编程权威指南笔记3:Android Fragment讲解与Android Studio中的依赖关系,如何添加依赖关系

    Android Fragment 当我在学习时,了解了Fragment词汇 Fragment是一种控制器对象,我就把所了解的简单说一下.activity可以派fragment完成一些任务,就是管理用户 ...

  7. matlab制作打地鼠游戏,Python制作打地鼠小游戏

    原标题:Python制作打地鼠小游戏 导语 大家好,欢迎来到 Crossin的编程教室 ! 打地鼠游戏相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠呗~ 今天就给大家分享一个 ...

  8. 如何用python制作五子棋游戏_Python制作打地鼠小游戏

    原文链接 Python制作小游戏(二十一)​mp.weixin.qq.com 效果展示 打地鼠小游戏https://www.zhihu.com/video/1200492442610450432 简介 ...

  9. html坦克游戏,HTML5制作的坦克游戏

    HTML5制作的坦克游戏 本游戏是基于HTML5开发的 网页游戏,js,css辅助开发 源码如下: 坦克大战 坦克大战(请使用IE浏览器) style="background-color:b ...

  10. Python小游戏——Pygame制作2048小游戏

    pygame之2048小游戏 初学python,发现看网上的python理论太过枯燥. 哎嘿~~干脆直接弄个小游戏叭,一边学习,一边写代码. 备注: 1.很多地方我尽量注解,方便大家观看. 2.完整代 ...

最新文章

  1. matlab_矩阵的灵活操作
  2. C# 基于密钥的64位加密与解密方法(原创)
  3. 《系统集成项目管理工程师》必背100个知识点-23整体变更控制流程
  4. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
  5. 牛客练习赛36 Rabbit的字符串(最小表示法)
  6. php截取字符串,带中文,多余的省略号代替
  7. DataTable排序的一般方法
  8. Cisco路由配置命令
  9. tomcat-maven-plugin问题汇总
  10. Memcached:高性能的分布式内存缓存服务器
  11. linux下使用小票打印
  12. 微信小程序demo(新闻类)
  13. matlab可以做什么,matlab仿真用来干什么
  14. Python:实现矩阵的Schur complement舒尔补算法(附完整源码)
  15. 震惊了!鸿蒙又多了一种开发方式Ets,让更多的人赶上红利!
  16. 论文投稿指南——中国(中文EI)期刊推荐(第4期)
  17. JAVA毕业设计计算机类专业考研交流学习平台计算机源码+lw文档+系统+调试部署+数据库
  18. 到底要怎么做,才能不堵车?
  19. 代码报错 Uncaught TypeError: Converting circular structure to JSON
  20. 3dmark压力测试 linux,压榨你的电脑潜能:3DMark压力测试正式发布

热门文章

  1. QT自定义按钮类(自定义图片,形状,点击特效)
  2. [转载]美国签证敏感专业列表Technology Alert List_拔剑-浆糊的传说_新浪博客
  3. linux怎么用命令上传本地文件,Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件...
  4. absolute 与overflow:hidden常见bug
  5. 论5数字的价值定位和推销策略
  6. 我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,
  7. ftp服务器设置上文件大小,ftp服务器文件上传大小设置
  8. JavaScript笔记 let、var和const详解
  9. w7计算机文件夹打开怎么设置密码,文件夹怎么设置密码,win7文件怎么加密-
  10. linux系统中ulimit命查看/设置堆栈空间大小