参见游戏图片和视频
四、背景滚动
首先背景图片做得可以上下连接(上下滚动),就是画一张图片,下面接着画,或者上面接着画,看起来都是无缝的。然后程序上的处理:计一个变量go值,每桢go += add;add为滚动速度(向上为负值,向下为正值)程序上为向下滚动,这样看起来人就在前进了
go += add;
int heights = 0;
int drawY = 0;
heights = one.getHeight();//图片高度
drawY = (go >> 2) % one.getHeight();//之前是还有云层什么的, //最底下>>2,第二层>>1的,以控制各层不同速度。后来因为内存不够用,砍层了,>>2就一直没变
if(drawY - Datas.height < 0)//Datas.height为屏幕高度,如果发现起始画点在屏幕中,则多画一张
{//达到遮盖目的
g.drawImage(one, 0, drawY, 20);//one是图片Image对象,xy坐标,20是anchor,鸟哥发现有好些人不是用20,用0的 //经过测试发现0与20其实结果是一样的
}
g.drawImage(one, 0, drawY - heights, 20);
五、怪物生成
有些游戏根据坐标,有些游戏根据时间,有些写死,有些随机。本游戏根据时间。
为了确保效果,做了个简单的怪物编辑器,由策划自己编辑:
坐标编辑:
两者结合,策划方便地看到怪运动轨迹。第几秒出现什么线路的怪,啥等级的。都有明确显示。
编辑器上一些描述:
public static String[][][] traces =
{
{//蝙蝠:
{//从上向下飞
"飞行速度a1,到达屏幕上方1/4的时候,发射一颗瞄准子弹,子弹速度b1",
"飞行速度a2,到达屏幕上方1/4的时候,发射一颗瞄准子弹,子弹速度b2",
"飞行速度a1,到达屏幕上方1/4的时候,发射三颗散弹,子弹速度c1",
"飞行速度a2,到达屏幕上方1/4的时候,发射三颗散弹,子弹速度c1"},
{//路线2:...},
{//路线3:抛物线(从右到左)
....
},
{//路线4:飞向屏幕(120,240)这一点,速度较快
"无子弹",
"刚出屏幕的时候发射一颗瞄准弹(瞄准主角),速度要比自身快"
}
}
,
{//刺客:
...
},
............
};
public static String[][] tracesDescription =
{
{//蝙蝠:
"从上向下飞",
"路线3:抛物线(从左到右)",
"路线3:抛物线(从右到左)",
"路线4:飞向屏幕(120,240)这一点,速度较快"
},
{//刺客:
...
},
{//枪手:
...........
{//将军:
"路线1:从上往下,到屏幕四分之一出停留一段时间,发弹,离开"
},
{//巨兽:
"路线1:从上往下"
}
};
看看这些ai描述,大部分是以屏幕或者时间为参考的,这样,移植不同屏幕的机型时就不用修改了。
用netbeans开发,很快拉出来两个界面。
95;311w-W,h+H//95:第几秒出现;3:怪的id;1:怪的等级;1:怪的线路.最后为出现坐标
94;001w>1+W,-H
94;001w>1-W,-H
93;001w>1,-H-H
93;001w>1-W,-H
93;001w>1+W,-H
90;131w+W,H
86;101-W,-H
86;111w+W,-H
86;211-W,H
84;001w>1+W,-H
84;001w>1-W,-H
83;201w>1,-H
80;301W,h+H
80;131w+W,H
80;201w>1-W-W,-H
80;201w>1+W+W,-H
78;001w>1,-H-H
78;001w>1-W,-H
78;001w>1+W,-H
76;211-W,H
75;401w>1-W,-H
75;401w>1+W,-H
74;001w>1+W,-H
74;001w>1-W,-H
74;311w-W,h+H
70;131w+W,H
70;501w>1,-H
68;201w>1,-H
66;101-W,-H
66;111w+W,-H
66;211-W,H
64;001w>1+W,-H
64;001w>1-W,-H
63;301W,h+H
63;001w>1,-H-H
63;001w>1-W,-H
63;001w>1+W,-H
60;131w+W,H
56;121-W,H
54;001w>1+W,-H
54;001w>1-W,-H
53;201w>1,-H
53;311w-W,h+H
50;131w+W,H
50;401w>1-W,-H
50;401w>1+W,-H
48;001w>1,-H-H
48;001w>1-W,-H
48;001w>1+W,-H
46;101-W,-H
46;111w+W,-H
46;301W,h+H
46;121-W,H
44;001w>1+W,-H
44;001w>1-W,-H
40;201w>1-W-W,-H
40;201w>1+W+W,-H
38;201w>1,-H
36;121-W,H
35;501w>1,-H
34;001w>1+W,-H
34;001w>1-W,-H
33;001w>1,-H-H
33;011-W,-H
33;021w+W,-H
32;311w-W,h+H
30;131w+W,H
28;002w>1,-H
26;101-W-W,-H
26;111w+W+W,-H
26;121-W,H
25;401w>1,-H
24;201w>1+W+W,-H
24;201w>1-W-W,-H
23;201w>1,-H
20;131w+W,H
18;002w>1,-H-H
18;021w+W,-H
18;011-W,-H
14;001w>1+W,-H
14;001w>1-W,-H
12;301W,h+H
11;311w-W,h+H
10;131w+W,H
8;321w>1,-H
6;101-W-W,-H
6;111w+W+W,-H
4;111w+W+W,-H
4;101-W-W,-H
3;201w>1,-H-H
3;001w>1-W,-H
3;001w>1+W,-H
w,h为手机屏幕宽高,W,H为怪身体的宽高。>1表示向右移等。游戏会解析这些坐标值,得到具体坐标数据。
它们都是以屏幕,或者自己做参考,这样不同手机屏幕移植一样有好处。
六、切图介绍
为了提高速度,游戏中的画图全部没有用到旋转,翻转。游戏本身决定。切图也没有用动编了。如下图:
美术给出对应的坐标,用drawRegion搞定:
也没什么人气,javaeye里j2me关注度本身就小。技术分享就到这里吧。鸟哥,感谢有关注的网友!
分享到:
相关推荐
鸟哥惠新晨,PHP
鸟哥SQL常用命令 鸟哥SQL常用命令 鸟哥SQL常用命令 鸟哥SQL常用命令
鸟哥的 Linux 私房菜基础篇 和 服务器篇 第三版 还有sqlServer的pdf电子书
鸟哥的私房菜
鸟哥的私房菜,共3个pdf ,
鸟哥服务器架设
鸟哥linux服务篇,pdf资料,细说了linux服务器的架设。
鸟哥 linux 基础 鸟哥网站上下载的网页,制作为PDF,有bookmarks
鸟哥的linux,pdf高清版 鸟哥的linux,pdf高清版 鸟哥的linux,pdf高清版 鸟哥的linux,pdf高清版
鸟哥的私房菜。是嵌入式学习当中个人认为很好的一本电子书。
鸟哥的linux鸟哥的linux 私房菜 课后题答案
鸟哥linux服务器架设篇 mobi 鸟哥linux服务器架设篇 mobi
鸟哥linux私房菜-服务器版 3版 vbird-linux-server-3e.pdf
鸟哥的 Linux 与 ADSL 私房菜(part3)
两本书合成在一起,基础版与服务器版,非常清晰,是学习linux系统的必选好书。
鸟哥的私房菜linux 关于linux初学者很好的教材
鸟哥linux私房菜,通俗易懂的入门文档