首先给大家介绍一个RPG素材网站

这几天一直在捣鼓这个

有很多游戏人物图片

可以用来实现人物动画

游戏画面如下图

代码如下

只实现了移动人物,对碰撞之类的还没有实现。

package com.example.gamethree;

import android.view.KeyEvent;

import android.view.SurfaceView;

import android.view.SurfaceHolder;

import android.view.View;

import android.content.Context;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Bitmap;

import android.graphics.Color;

public class EightOne extends SurfaceView implements SurfaceHolder.Callback,Runnable{

private Canvas canvas;

private Bitmap background;

private Thread thread;

private SurfaceHolder holder;

public int l_id=0;

public int r_id=0;

public int u_id=0;

public int d_id=0;

//人物位置坐标

int curX=0;

int curY=0;

int Code;

//获取人物朝右的图片ID

int[] r_pic_id={R.drawable.right_a,

R.drawable.right_b,

R.drawable.right_a,

R.drawable.right_d

};

//获取人物朝左的图片ID

int[] l_pic_id={R.drawable.left_a,

R.drawable.left_b,

R.drawable.left_c,

R.drawable.left_d,

};

//获取人物朝上的图片ID

int[] u_pic_id={R.drawable.up_a,

R.drawable.up_b,

R.drawable.up_a,

R.drawable.up_d

};

//获取人物朝下的图片ID

int[] d_pic_id={R.drawable.down_a,

R.drawable.down_b,

R.drawable.down_c,

R.drawable.down_d,

};

//获取对应图片ID的Bitmap数组

Bitmap[] r_pic=new Bitmap[4];

Bitmap[] l_pic=new Bitmap[4];

Bitmap[] u_pic=new Bitmap[4];

Bitmap[] d_pic=new Bitmap[4];

public EightOne(Context content)

{

super(content);

holder=getHolder();

holder.addCallback(this);

background=BitmapFactory.decodeResource(getResources(), R.drawable.background1);

//加载图片资源

maps();

thread=new Thread(this);

//这个一定要有,否则无法监听到键盘事件

setFocusable(true);

setOnKeyListener(new OnKeyListener(){

public boolean onKey(View v,int keyCode,KeyEvent event)

{

Code=keyCode;

if(event.getAction()==KeyEvent.ACTION_DOWN)

{

switch(keyCode)

{

case KeyEvent.KEYCODE_DPAD_RIGHT:

if(r_id>2)

r_id=0;

r_id++;

curX+=4;

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

if(l_id>2)

l_id=0;

l_id++;

curX-=4;

break;

case KeyEvent.KEYCODE_DPAD_UP:

if(u_id>2)

u_id=0;

u_id++;

curY-=4;

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

if(d_id>2)

d_id=0;

d_id++;

curY+=4;

break;

}

}

else

{

l_id=0;

r_id=0;

u_id=0;

d_id=2;

}

return true;

}

});

}

@Override

public void surfaceChanged(SurfaceHolder holder,int format,int width,int height)

{

}

@Override

public void surfaceCreated(SurfaceHolder holder)

{

//启动一条线程

thread.start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder)

{

}

//分别加载人物在左、右、上、下四个方面的资源

public void maps(){

for(int i=0;i

{

r_pic[i]=BitmapFactory.decodeResource(getResources(), r_pic_id[i]);

l_pic[i]=BitmapFactory.decodeResource(getResources(), l_pic_id[i]);

u_pic[i]=BitmapFactory.decodeResource(getResources(), u_pic_id[i]);

d_pic[i]=BitmapFactory.decodeResource(getResources(), d_pic_id[i]);

}

}

@Override

public void run()

{

while(true)

{

try{

synchronized(holder)

{

//调用自定义的绘画方法

canvas=holder.lockCanvas();

myDraw();

holder.unlockCanvasAndPost(canvas);

}

}

catch(Exception e)

{

}

try{

Thread.sleep(100);

}

catch(Exception e)

{

}

}

}

//自定义一个绘画方法

public void myDraw(){

canvas.drawColor(Color.BLACK);

canvas.drawBitmap(background,0,0,null);

if(Code==KeyEvent.KEYCODE_DPAD_RIGHT)

canvas.drawBitmap(r_pic[r_id],curX,curY,null);

else if(Code==KeyEvent.KEYCODE_DPAD_LEFT)

canvas.drawBitmap(l_pic[l_id],curX,curY,null);

else if(Code==KeyEvent.KEYCODE_DPAD_UP)

canvas.drawBitmap(u_pic[u_id],curX,curY,null);

else

canvas.drawBitmap(d_pic[d_id],curX,curY,null);

}

}

android人物移动设计软件,实现在SurfaceView上移动游戏人物相关推荐

  1. Android手机UI设计---软件市场界面设计

    这是一个简单的Android手机UI设计-"软件市场"界面设计.上方的图片滑动由Gallery完成,最底下的类别分类是由TabHost完成,而在"首页"这个类别 ...

  2. 计算机游戏设计软件有哪些,除了玩游戏还能做设计?十代酷睿设计软件实操

    众所周知,英特尔酷睿H系列处理器是主要面向游戏本推出的平台.但是近年来随着英特尔与业界合作伙伴共同努力,并细分出创意设计PC之后,兼顾多核心和高主频特性,并拥有先进指令集的酷睿H系列处理器也成为这类新 ...

  3. Android作业:设计一个能在图片上涂鸦的程序

    一.内容 设计一个能在图片上涂鸦的程序 二.实现 activity_main.xml MainActivity.java HandWrite.java

  4. o型圈沟槽设计软件_265 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?...

    神行问答265: 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?在小批量和量产时如何确保其装配工艺. 参考答案1: 1.防蠕动作用大小取决于4个方面:滚子转动产生的蠕动力矩 ...

  5. 杜洋视频入门PCB设计 软件AD09 淘宝上买的全套超清教程

    视频列表 - 第1集:AD9汉化与新建工程 - 第2集:在原理图上增加元器件及DIY元件库的方法 - 第3集:一个完整电路原理图的画法及操作流程 - 第4集:将原理图转成PCB图并修改元器件封装 - ...

  6. 4款不错的UI设计软件推荐

    俗话说,如果工人想做好工作,他们必须首先磨利他们的工具.高质量的UI设计软件将使设计事半功倍. 近年来,UI设计软件的逐渐多样化,让一些需要使用UI设计软件的小伙伴不知道如何选择. 我整理了四款优秀的 ...

  7. 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计

    摘要: 自PDC钻头上世纪八十年代问世以来,因具有平均机械钻速高,进尺多,寿命长等特点,已逐渐成为石油,天然气工业广泛推广应用的一种高效破岩工具,随着人们对新一代PDC钻头认识的不断深入,它的生产技术 ...

  8. 设计软件中的黑马,免费还好用

    身为一名设计师,设计软件可是其职业生涯中不可或缺的重要工具.设计软件之于设计师,就如同武器之于士兵,没有一把趁手的武器在手,即便是战斗力再强,也总会受到局限.但初入职场的新人手中预算有限,买不起动则几 ...

  9. 支持Mac电脑的五款设计软件,你都装好了么?

    随着生活的进步,人们对于精神和生活的需求越来越高,随之而来的就是对于设计的需求.想从事设计行业的人也越来越多,不少UI设计师依靠自己的自学也能够设计出众多令人惊艳的作品.这里我就介绍几款支持Mac电脑 ...

最新文章

  1. python调用百度识别文字接口_python调用百度通用文字识别接口进行验证码识别
  2. layui表格使用复选框批量删除_word表格技巧:如何对表格进行样式批处理
  3. WINKEY功能键你会用吗??
  4. Py之wordcloud:python中非常有趣的词云图wordcloud简介、安装、使用方法、案例应用详细攻略
  5. Qt学习笔记之类继承关系图
  6. rj45接口线序_水晶头中的RJ45、RJ11、8P8C、6P4C有些什么学问?
  7. github和gitlab仓库一起使用
  8. ​如何判断公司是否靠谱?
  9. java可选项_在Java中链接可选项8
  10. 算法 排序 python 实现--堆排序
  11. 获取当前 jar 包的运行路径
  12. SQL慢查询日志与查询分析器explain
  13. ie浏览器升级的正确姿势
  14. mysql数据库设计与应用答案智慧树_知到智慧树MySQL数据库设计与应用完整免费答案...
  15. 逆向记录Assaultcube for Mac OS
  16. Scaner VS bufferedReader
  17. 使用git命令——分支切换
  18. libjpeg 库的安装
  19. get/post请求使用工具(apifox/postman/浏览器)能请求通但是java代码不行的问题解决
  20. React hooks useState如何拿到更新后的值

热门文章

  1. php微博发布时间,PHP格式化显示时间函数,用于微博、社交媒体等,类似豆瓣
  2. 计算机一级笔试2012,2012计算机一级笔试模拟试卷及答案
  3. TensorFlow:字词的向量表示
  4. posix threads php,3分钟短文 | PHP多线程没用过,你可能错过了计算机最好的时代!...
  5. Mysql 5.7 Gtid内部学习(十) 实际案例(二)
  6. 1.[精通Hibernate笔记]Hibernate简介
  7. linux下DNS配置详解
  8. smart-framework框架学习之DispatcherServlet分发机制
  9. WLS_Oracle Weblogic服务器生命周期(案例)
  10. SCCM 2012安装部署三:客户端管理