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创造游戏世界相关推荐

  1. [转载]J2ME平台上手机游戏移植的体会

    J2ME平台上手机游戏移植的体会 首先要说的是,我在公司移植的主要是日本的手机游戏.多数需要汉化处理.少数涉及到跨平台的移植. 我所用的编程环境就是很普通的WTK+JDK.而且版本都是很低的,因为要符 ...

  2. 以太智云赋能游戏产业,打造长沙顶尖NFT游戏开发平台,实现边玩边赚

    2017年,区块链游戏<加密猫>掀起了NFT潮流,NFT也正式进入了人们的视野,真正开始注意到其蕴含的巨大潜力. 时隔三年NFT再次火爆整个数字资产行业,Twitter公司首席执行官Jac ...

  3. 游戏推广免费的cps模式和游戏加盟平台选择的一个误区。

    今天给大家分享一下游戏推广mf的cps模式和游戏加盟平台选择的一个误区. 第一先来说一下游戏cps,简单的表达呢就是销售把产品卖出去可以获得相应的提点分成,这个模式呢是属于免费的,但是免费不代表没有陷 ...

  4. J2ME平台下文本阅读器的实现

    J2ME平台下文本阅读器的实现 J2ME平台下文本阅读器的实现 摘要:本文利用J2ME技术开发了一个文本阅读器,实现了手机对文本文件的显示,给出了该程序的实现代码,并对其关键技术进行了详细阐述. 关键 ...

  5. 微信小游戏提供服务器,发布到微信小游戏平台

    发布到微信小游戏平台 早在微信官方正式发布小游戏平台之前,Cocos Creator 团队就和微信开发团队合作完成了 Cocos Creator 对微信小游戏平台的支持.在小游戏正式公布之后,我们也在 ...

  6. 天翼云入局5G云游戏市场!携手合作伙伴打造云游戏能力平台

    2020年5月16日,中国电信在线发布"天翼云游戏能力平台",正式宣布向游戏产业链合作伙伴提供游戏开发测试.游戏云化适配.游戏内容发行.游戏运营支撑.游戏产业资本对接等各类生态合作 ...

  7. Web3 游戏中的创造者经济:从游戏到平台,用户生成内容的挑战

    撰写:Joel John.Siddharth 编译:深潮 TechFlow 图片来源:由Maze AI工具生成 今天我们要探讨的是游戏.出于几个原因,游戏是为数不多的真正有机会在数字资产生态系统中扩展 ...

  8. Web3 游戏中的创造者经济:从游戏到平台 用户生成内容的挑战

    今天我们要探讨的是游戏.出于几个原因,游戏是为数不多的真正有机会在数字资产生态系统中扩展至十亿用户面向消费者的用例之一. 首先,游戏玩家已经习惯了数字资产:他们经常为游戏中的交易(即道具)付费. 其次 ...

  9. 如何学好3D游戏引擎编程《转自3D游戏引擎网》

    此篇文章献给那些为了游戏编程不怕困难的热血青年,它的神秘要我永远不间断的去挑战自我,超越自我,这样才能攀登到游戏技术的最高峰         --阿哲VS自己 QQ79134054多希望大家一起交流与 ...

最新文章

  1. block,inline和inline-block概念和区别
  2. Android RecycleView 去掉默认动画
  3. 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
  4. Stanford UFLDL教程 神经网络向量化
  5. EOS 智能合约源代码解读 (1)总体说明
  6. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记
  7. python实现文件上传下载
  8. 从StreamCorruptedException解析值:无效的流头消息
  9. mysql gz 安装_Linux下安装mysql 5.7.17.tar.gz的教程详解
  10. CentOS 安装最新版本 Git
  11. Java多线程系列--“JUC锁”03之 公平锁(一)
  12. 电脑分辨率设置工具_打印不求人:我猜你并不会设置“分辨率”!
  13. 计算机中丢失xvidcore.dll,出现xvidcore.dll not found 问题的解决方法
  14. 小甲鱼 C语言 帮助社区大妈编写一个打疫苗登记程序
  15. 计算机win7关机重启,电脑win7关机后自动重启如何解决_win7一关机就立马自动重启修复方法-win7之家...
  16. TCR-seq(T细胞受体测序)
  17. 18650圆柱锂电池comsol5.6模型 参数已配置,电化学生热研究,三种放电倍率
  18. 人脸识别用哪种python库_GitHub - Veechiry/face_collection: python的face_recognition人脸识别库的使用...
  19. ATFX:5年期LPR利率大降15基点,USDCNH涨破年内高点
  20. 大象高端营销:家装电话营销细节和技巧

热门文章

  1. Google Adsense西联汇款邮政储蓄收款流程
  2. 室内光缆与室外电力光缆特点简介
  3. 生物信息百Jia软件(28):canu
  4. 第一个小项目:学生成绩管理系统
  5. office972003_Microsoft Office Word 97-2003 文档
  6. 学习WEB前端第四天(3)-背景图像
  7. 营业收费管理系统,整合多类抄表系统
  8. ViTDet程序调用不了GPU全部内存,而且显示NVCC: not available
  9. Linux关闭重启防火墙
  10. Zabbix监控系统的搭建