android人物移动设计软件,实现在SurfaceView上移动游戏人物
首先给大家介绍一个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上移动游戏人物相关推荐
- Android手机UI设计---软件市场界面设计
这是一个简单的Android手机UI设计-"软件市场"界面设计.上方的图片滑动由Gallery完成,最底下的类别分类是由TabHost完成,而在"首页"这个类别 ...
- 计算机游戏设计软件有哪些,除了玩游戏还能做设计?十代酷睿设计软件实操
众所周知,英特尔酷睿H系列处理器是主要面向游戏本推出的平台.但是近年来随着英特尔与业界合作伙伴共同努力,并细分出创意设计PC之后,兼顾多核心和高主频特性,并拥有先进指令集的酷睿H系列处理器也成为这类新 ...
- Android作业:设计一个能在图片上涂鸦的程序
一.内容 设计一个能在图片上涂鸦的程序 二.实现 activity_main.xml MainActivity.java HandWrite.java
- o型圈沟槽设计软件_265 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?...
神行问答265: 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?在小批量和量产时如何确保其装配工艺. 参考答案1: 1.防蠕动作用大小取决于4个方面:滚子转动产生的蠕动力矩 ...
- 杜洋视频入门PCB设计 软件AD09 淘宝上买的全套超清教程
视频列表 - 第1集:AD9汉化与新建工程 - 第2集:在原理图上增加元器件及DIY元件库的方法 - 第3集:一个完整电路原理图的画法及操作流程 - 第4集:将原理图转成PCB图并修改元器件封装 - ...
- 4款不错的UI设计软件推荐
俗话说,如果工人想做好工作,他们必须首先磨利他们的工具.高质量的UI设计软件将使设计事半功倍. 近年来,UI设计软件的逐渐多样化,让一些需要使用UI设计软件的小伙伴不知道如何选择. 我整理了四款优秀的 ...
- 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
摘要: 自PDC钻头上世纪八十年代问世以来,因具有平均机械钻速高,进尺多,寿命长等特点,已逐渐成为石油,天然气工业广泛推广应用的一种高效破岩工具,随着人们对新一代PDC钻头认识的不断深入,它的生产技术 ...
- 设计软件中的黑马,免费还好用
身为一名设计师,设计软件可是其职业生涯中不可或缺的重要工具.设计软件之于设计师,就如同武器之于士兵,没有一把趁手的武器在手,即便是战斗力再强,也总会受到局限.但初入职场的新人手中预算有限,买不起动则几 ...
- 支持Mac电脑的五款设计软件,你都装好了么?
随着生活的进步,人们对于精神和生活的需求越来越高,随之而来的就是对于设计的需求.想从事设计行业的人也越来越多,不少UI设计师依靠自己的自学也能够设计出众多令人惊艳的作品.这里我就介绍几款支持Mac电脑 ...
最新文章
- python调用百度识别文字接口_python调用百度通用文字识别接口进行验证码识别
- layui表格使用复选框批量删除_word表格技巧:如何对表格进行样式批处理
- WINKEY功能键你会用吗??
- Py之wordcloud:python中非常有趣的词云图wordcloud简介、安装、使用方法、案例应用详细攻略
- Qt学习笔记之类继承关系图
- rj45接口线序_水晶头中的RJ45、RJ11、8P8C、6P4C有些什么学问?
- github和gitlab仓库一起使用
- ​如何判断公司是否靠谱?
- java可选项_在Java中链接可选项8
- 算法 排序 python 实现--堆排序
- 获取当前 jar 包的运行路径
- SQL慢查询日志与查询分析器explain
- ie浏览器升级的正确姿势
- mysql数据库设计与应用答案智慧树_知到智慧树MySQL数据库设计与应用完整免费答案...
- 逆向记录Assaultcube for Mac OS
- Scaner VS bufferedReader
- 使用git命令——分支切换
- libjpeg 库的安装
- get/post请求使用工具(apifox/postman/浏览器)能请求通但是java代码不行的问题解决
- React hooks useState如何拿到更新后的值
热门文章
- php微博发布时间,PHP格式化显示时间函数,用于微博、社交媒体等,类似豆瓣
- 计算机一级笔试2012,2012计算机一级笔试模拟试卷及答案
- TensorFlow:字词的向量表示
- posix threads php,3分钟短文 | PHP多线程没用过,你可能错过了计算机最好的时代!...
- Mysql 5.7 Gtid内部学习(十) 实际案例(二)
- 1.[精通Hibernate笔记]Hibernate简介
- linux下DNS配置详解
- smart-framework框架学习之DispatcherServlet分发机制
- WLS_Oracle Weblogic服务器生命周期(案例)
- SCCM 2012安装部署三:客户端管理