android飞机游戏敌机移动路径
基础android的飞机类游戏,与前人一样,由surfaceView绘制游戏画面,另起线程控制绘制时间间隔达到动态效果。这里附上最近自己写的敌机自动飞行路径代码。请大家给点意见。
在敌机管理模块,加入此段代碼。movePingXing记录该飞机直线轨迹运行时,每次canvas绘制的x、y的偏量值。moveYuanHu记录该飞机按圆形轨迹运行时,每次canvas绘制的x、y的偏量值。String中,“、”前面得是x方向坐标偏移量,后面得是y方向坐标偏移量。
private static String[] movePingXing = { 5 + "," + 0, 5 + "," + 0, 5 + "," + 0,
5 + "," + 0, 5 + "," + 0, 5 + "," + 0, 5 + "," + 0,
5 + "," + 0, 5 + "," + 0, 5 + "," + 0, 5 + "," + 0,
5 + "," + 0, 5 + "," + 0, 5 + "," + 0, 5 + "," + 0,
5 + "," + 0, 5 + "," + 0, 5 + "," + 0, 5 + "," + 0, 5 + "," + 0 };
private static String[] moveYuanHu = { 5 + "," + 1, 5 + "," + 1,
4 + "," + 2, 4 + "," + 2,
3 + "," + 3,3 + "," + 3,
2 + "," + 4, 2 + "," + 4,
1 + "," + 5, 1 + "," + 5,
-1 + "," + 5,-1 + "," + 5,
-2 + "," + 4,-2 + "," + 4,
-3 + "," + 3, -3 + "," + 3,
-4 + "," + 2, -4 + "," + 2,
-5 + "," + 1, -5 + "," + 1,
-5 + "," + -1,-5 + "," + -1,
-4 + "," + -2,-4 + "," + -2,
-3 + "," + -3,-3 + "," + -3,
-2 + "," + -4,-2 + "," + -4,
-1 + "," + -5,-1 + "," + -5,
1 + "," + -5,1 + "," + -5,
2 + "," + -4,2 + "," + -4,
3 + "," + -3,3 + "," + -3,
4 + "," + -2,4 + "," + -2,
5 + "," + -1,5 + "," + -1};
然后给出路径添加方法,把这些坐标偏移量加入到moveList1。moveList1里的内容一定要充足,必须保证在每次canvas绘制时,飞机都能得到一个有效路径的String。否则会出现空指针异常。
public static boolean initMoveList1() {
addPingXing();
addYuanHu();
addPingXing();
addPingXing();
addPingXing();
return true;
}
public static void addPingXing(){
Map<String, String> map;
for (int i = 0; i < movePingXing.length; i++) {
map = new HashMap<String, String>();
map.put("way", movePingXing[i]);
moveList1.add(map);
}
} public static void addYuanHu(){
Map<String, String> map;
for (int i = 0; i < moveYuanHu.length; i++) {
map = new HashMap<String, String>();
map.put("way", moveYuanHu[i]);
moveList1.add(map);
}
}
调用initMoveList1()方法后,敌机管理类就可获得一个记录敌机飞行轨迹的偏移量的ArrayList了。
在敌机移动的时候,插入下面代码,实现每次绘制canvas时,让敌机按自己设定的路径动起来。我这里设计时只是简单的直线——圆行——直线飞机路径。
Map<String, String> map= moveList1.get(enemy.getCurrentSecond());
String moveWay = map.get("way");
String[] zuobiao= moveWay.split(",");
enemy.x += Integer.parseInt(zuobiao[0]);
enemy.y += Integer.parseInt(zuobiao[1]);
上面currentSecond是一个int型变量,是敌机的属性,记录敌机在画面中出现的时间。
望高手给点意见,看有什么地方能改进下。
android飞机游戏敌机移动路径的更多相关文章
- Android原生游戏开发:使用JustWeEngine开发微信打飞机
使用JustWeEngine开发微信打飞机: 作者博客: 博客园 引擎地址:JustWeEngine 示例代码:EngineDemo JustWeEngine? JustWeEngine是托管在Git ...
- python 之路,200行Python代码写了个打飞机游戏!
早就知道pygame模块,就是没怎么深入研究过,恰逢这周未没约到妹子,只能自己在家玩自己啦,一时兴起,花了几个小时写了个打飞机程序. 很有意思,跟大家分享下. 先看一下项目结构 "" ...
- pygame开发PC端微信打飞机游戏
pygame开发PC端微信打飞机游戏 一.项目简介 1. 介绍 本项目类似曾经火爆的微信打飞机游戏.游戏将使用Python语言开发,主要用到pygame的API.游戏最终将会以python源文件gam ...
- 转:探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
前言 相信这样一个问题,大家都不会陌生, “有什么的方法可以使Android的程序APK不用安装,而能够直接启动”. 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android手机游戏平台却又能实 ...
- 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
前言相信这样一个问题,大家都不会陌生,“有什么的方法可以使Android的程序APK不用安装,而能够直接启动”.发现最后的结局都是不能实现这个美好的愿望,而腾讯Android手机游戏平台却又能实现这个 ...
- Pygame制作微信打飞机游戏PC版
使用Pygame制作微信打飞机游戏PC版 转至:http://www.cnblogs.com/dukeleo/p/3339780.html 前一阵子看了一篇文章:青少年如何使用Python开始游戏 ...
- HTML5学习+javascript学习:打飞机游戏简介以及Model层
本着好记性不如烂博客以及分享成功的喜悦和分享失败的苦楚,今天我来分享下一个练手项目:打飞机游戏~从小就自己想做游戏,可是一直没有机会.HTML5给了我们这个平台,这个平台可以有很多以前想都不敢想的东西 ...
- python学习笔记(七) 类和pygame实现打飞机游戏
python中类声明如下: class Student(object): def __init__(self, name, score): self.name = name self.score = ...
- 27.Java 飞机游戏小项目
开篇 游戏项目基本功能开发 飞机类设计 炮弹类设计 碰撞检测设计 爆炸效果的实现 其他功能 计时功能 游戏项目基本功能开发 这里将会一步步实现游戏项目的基本功能. 使用 AWT 技术画出游戏主窗口 A ...
随机推荐
- php中的ceil和floo以及round函数
ceil是向上进位得到一个值的函数: floor是舍掉小数位得到一个值的函数: round是用来四舍五入的函数. ceil 定义和用法: ceil() 函数向上舍入为最接近的整数. ceil(x); ...
- eclipse不自动弹出提示(Alt+/ 快捷键失效)
转自:http://www.cnblogs.com/shaweng/archive/2013/09/26/3340016.html 主要有一下几种方法: 1.次方法用于没有一点提示的情况:依次打 ...
- python操作Excel读--使用xlrd
一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 import x ...
- Eclipse插件安装
在线安装(一定要保证网络畅通) 更新插件: Eclipse中,Help->Install New Software...从Work with下拉列表框中选择,通过该列表框可以选择Eclipse已 ...
- poj 2531 Network Saboteur( dfs )
题目:http://poj.org/problem?id=2531 题意:一个矩阵,分成两个集合,求最大的 阻碍量 改的 一位大神的代码,比较简洁 #include<stdio.h> #i ...
- 深入理解Java虚拟机 - 类加载器
引子: 类加载器(classloader)是独立于虚拟机之外,可以独立实现的代码模块. OSGi使用了类加载器的这一特点实现其热插拔的特性 Java同C++等语言不通, ...
- [Unity3d]小地图的制作
继续今天的学习心得,unity中小地图的制作,实现了小地图中红色小箭头代表场景中的主角,然后人物方向的转变,小地图中箭头也随之改变方向. 效果图 右上角就是小地图,上面有个红色小箭头就是代表主 ...
- POJ 3648 Wedding (2-SAT,经典)
题意:新郎和新娘结婚,来了n-1对夫妻,这些夫妻包括新郎之间有通奸关系(包括男女,男男,女女),我们的目地是为了满足新娘,新娘对面不能坐着一对夫妻,也不能坐着有任何通奸关系的人,另外新郎一定要坐新娘对 ...
- spring-webmvc 4.3.4 与 freemarker、easyui 整合
一.所需lib包 二.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xm ...
- iOS--跳转到APPstore评分
本代码适用于iOS7之后的版本: NSString *str = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/ ...