J2ME平台的的RPG游戏开发历程(1)-盘古开天辟地,j2me创造游戏世界
来源:互联网 发布:扒衣服软件 编辑:程序博客网 时间:2024/04/29 21:01
J2ME平台的的RPG游戏开发历程(1)
本人并非从事开发行业,编程是我的业余爱好。接触编程3个年头,但实质上,学到的东西很少,只因自身悟性太低和毅力不够。
着实只是一只超级小小菜鸟。
各位看官观看本博文时发现本文的代码或者本文的其他地方的错误。而令你太抓狂,导致你的肾上腺素激增,或者因此摔键盘,摔鼠标,砸显示器等行为。都对本人无关。。。
再次重申,本人乃业余,写博文只因想记录低学习历程罢了。请你原谅我的功力吧。。
但是,对于代码的错误或者算法的优化,希望您能够向我提出。本人将虚心受教。学习进步。
谢谢。谢谢.
记得当初想要学习编程的时候,是在学校,那时候手机游戏火热得很。
天天那这个索爱的k750来玩游戏。
就是从那时候开始,萌生了开发一个自己的游戏的念头。
我时常跟我的朋友们说,编程真是一件美妙的东西,每一个程序,就像一个虚拟的世界,由你创造的世界。什么?你说这句话不是我说的?是某某名人说的。。好吧。我只是引用他的话罢了。。不要较真。
但这个确实是我心中的想法。特别是游戏的世界。
玩游戏看写小说,某程度来说是一样的,代入感很强。
而每个人心中,都会有一个属于自己的世界(当然,肯定不止一个)。
而把这个世界创造出来,相信是绝大部分人心中的梦想。
而我,选择了把我心中的某个虚拟世界变成一个游戏。
在这个Android当道的世界上,J2ME已经逐渐逝去。为什么我还要用J2ME来开发RPG呢?
因为我喜欢J2ME(好吧,我承认,其实是我android的技术不行,别寒碜我了。。)
RPG的详细介绍,我就不多说了。相信你就算不查资料,都知道RPG是个什么东西。
而RPG的分支,什么ARPG,SRPG这些的。如果以后我做到了。我可能会写。
但是,现在本文,讲的主要的传统意义上的RPG。
请允许我先发发牢骚。
网上的RPG开发的资料其实很多,但是有用的只占很少一部分,特别是书本,有用的东西简直惨不忍睹。书本上的例子,只是给你讲解每一个类的开发过程,和类与类之间的关系。并没有把这类游戏的开发思路交给你。(或者说是我悟性太低了?好吧,请原谅我吧。我太笨了)
废话说的够多了。。。不好意思,耽搁大家了。
作为开篇,就跟前面说到的,这个游戏,是一个世界。
盘古用斧头开天辟地。我们就要用J2ME创造游戏世界;
游戏的世界里面,你总不可能先有了人在有别的吧。
肯定,首先得有一个所谓的“世界”啦。就是地图。背景,你爱叫什么就什么吧。。
我们先来创建我们的地图类:
import javax.microedition.lcdui.Image;import javax.microedition.lcdui.game.TiledLayer; publicclass myMap { privateint [][]mapArray; //地图数组资源 private ImagemyMapImage; //地图图片资源 private TiledLayermyMap; //2.0新增的类,通常用于创建地图 public myMap(){ try{ myMapImage = Image.createImage("/map.png"); }catch(Exception e){ e.printStackTrace(); } //这个类的使用方法,烦请各位自己查查资料了。。。 myMap =new TiledLayer(15, 20,myMapImage, 16, 16); mapArray =newint [][]{ { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 193, 8, 8, 8, 195, 196, 193, 8, 8, 8, 8, 8, 8, 8, 8 }, { 223, 224, 224, 224, 225, 196, 223, 224, 224, 224, 224, 224, 224, 224, 224 }, { 253, 254, 254, 254, 255, 196, 253, 254, 254, 254, 254, 254, 254, 254, 254 }, { 313, 314, 314, 314, 315, 308, 313, 314, 314, 314, 314, 314, 314, 314, 314 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 226, 227, 228, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 256, 257, 258, 8, 8, 8 }, { 8, 8, 8, 8, 8, 308, 8, 8, 8, 286, 287, 288, 8, 8, 8 }, { 8, 226, 227, 228, 8, 308, 8, 8, 8, 199, 200, 201, 8, 8, 8 }, { 8, 256, 257, 258, 8, 308, 8, 8, 8, 229, 347, 231, 8, 8, 8 }, { 8, 286, 287, 288, 8, 308, 8, 8, 11, 11, 308, 11, 11, 8, 8 }, { 8, 199, 200, 201, 8, 308, 308, 308, 308, 308, 308, 8, 8, 8, 8 }, { 8, 229, 347, 231, 11, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 308, 11, 11, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, { 8, 8, 308, 308, 308, 308, 8, 8, 8, 8, 8, 8, 8, 8, 8 } }; for(int i = 0; i <mapArray.length; i++){ for(int j = 0; j <mapArray[i].length; j++){ myMap.setCell(j, i,mapArray[i][j]); } } } }
Canvas类:
import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics; publicclass myCanvasextends Canvas{ public myMapmap; public myCanvas(){ setFullScreenMode(true); map =new myMap(); } protectedvoid paint(Graphics g) { map.myMap.paint(g); } }
最后的显示效果就是这样了:
这个地图是怎么搞出来的呢?
首先,当然不可能是我自己画出来的。。对吧。
先来看看这图:
这个就是资源文件里面的map.png。
地图,就是使用电脑上的mapwin这个软件,把一个大图,分成多个相等大小的图块,然后再生成数组。
我们只需要使用这个数组就行了。
Mapwin的使用方法,请自行百度。。。谢谢
创建地图有很多方法,有Image数组双循环绘制,有整个大图片绘制等。
我这里使用的是2.0的新增的类TiledLayer.
但实际上,使用这个类的话,会有很大的限制,比如地图的移动,一般的游戏地图都肯定是比屏幕大的,移动的时候,一般都是主角居中,地图向反方向移动,
而如果使用TiledLayer的移动方法的话,那是相当的坑爹。CPU百分之70都被它占用了。
一般都会使用卡马克算法?我不晓得别人会不会用哈。。反正,我看着卡马克算法也是很头晕,虽然思路晓得怎么搞。。
下一篇写一下怎么优化地图,和加上地图的移动,随便加上一个英雄。来真正创建我们的世界。
- J2ME平台的的RPG游戏开发历程(1)-盘古开天辟地,j2me创造游戏世界
- J2ME手机游戏开发平台的搭建
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME平台A-RPG游戏地图数据处理
- J2ME RPG游戏边学边做
- J2ME平台手机游戏移植的体会
- 使用J2ME技术开发RPG游戏
- J2ME平台A-RPG游戏怪物寻路算法初探
- J2ME平台A-RPG游戏怪物寻路算法初探
- Kickstarter改变了世界融资及发起项目的方式
- 单个字符在内存中的存储
- GIS 地图相关资料
- gcc 后缀名
- 算法的时间性能分析
- J2ME平台的的RPG游戏开发历程(1)-盘古开天辟地,j2me创造游戏世界
- C语言中的指针与数组
- make: arm-eabi-gcc: Command not found 错误解决办法
- modify network adapter configuration parameters
- 福大3月月赛 魔塔
- Java高新技术【1】 (静态导入-可变参数-增强for循环-基本数据类型的自动拆箱与装箱)
- 纯文字命令行系统的初探,数组顺序编排
- 优化SQL Server的内存占用之执行缓存
- 采访Lua发明人的一篇文章