关于《J2ME手机游戏开发技术详解》的问题!

这里只是对我书中的bug和没有说明白的技术处说明,对于具体的编程问题,我只是点到为止!

对于3D部分的问题,由于我现在工作重点不在这上面,有些问题的回答我感到吃力,也不太想回答,详情请看我的文章。

 

我看了你的超级玛丽里面的绘制地图那一块看了很多次了~还是不太明白.MIDP1.0真难搞.

这个地图的问题,确实比较复杂,当时书上我给了几张图来说明这个问题,不知道你那里不明白,给个具体的例子,其实也没什么复杂的,就是把一张大地图整个打碎,然后把相同的部分用一张图片表示,这个图片有个序号,显示的时候,按照数组里的序号来绘制就可以了

 

手机游戏开发技术祥解》书中3D部分的随机迷宫算法是怎样实现的,有空能解释一下么

关于3D的部分不是我写的,我还得去看一下书上怎么弄得,我最近比较忙,也就没看。

 

我读你的书时,做了几个程序做实验。可是总是出现以下的问题,Uncaught exception java/lang/OutOfMemoryError,我在网上也找了答案,可是效果甚差。
  后来我把本书中第14章那个逃亡飞机的程序(光盘自带的)运行时也出现了这样的问题,我想请问一下李老师,这是什么问题呀。我一直找不到答案,请李老师帮我解答一下。
  我以前学Java学了有两年的时间了,去年年底,我改学J2me了,可是又学了这么长时间了,一点效果也没有。感觉什么也不会,请问李老师这
是什么问题呀?我还想让李老师给我再推荐几本书,我现在大学快毕业了,马上要面临着找工作,我想这个问题不解决,可能会影响我的就业吧,请李老师帮我一下。
  学生在此谢谢了。

这里有个问题是你的模拟器的内存设置有问题,这个我在书中有写,具体在哪里我忘记了,你看一下,专门说让你修改模拟器的HEAP的。应该就是在那几章例子里。

我是在逃亡者的游戏闪屏画面出现以后就不动了,然后按下手机上的键,eclipse控制台那里就显示java.lang.IllegalArgumentException
然后不管按什么也还是这样,程序无法运行

你把你的程序寄给我吧,我可以帮你看一下。[email protected]

我在用诺基亚的模拟器运行‘逃亡者’游戏的时候 出现“java.lang.IllegalArgumentException”这样的错误,应该是参数非法吧,可是不知道是在哪里,请您给解答一下,谢谢!!

这个地方我也没法回答,你没说是在哪里,在什么情况下,你这样说我信息不足

李老师,您好~!我是刚开始学J2ME的,我在运行那个超级玛莉的程序时,为什么游戏好像只有很少的一部分,没有完整的一关的吗??是我运行出错了还是那个程序只是包括那么少的一部分呢?谢谢!

这个确实只有一部分,但是程序的基本结构都有了,往后不过是情景设置和物件的摆放,所以省略了。

李老师,您好,我是刚开始学J2ME的,我是用Eclipse开发的,在运行的时候,出现问题:Uncaught exception java/lang/ArrayIndexOutOfBoundsException.
不知道是什么问题,请您帮忙解释一下,谢谢!

这个是你使用的数组越界了,你检查一下程序中的数据是否超过了数组的大小。

李老师您好,我看书上的例子“网络对战扑克”,看不明白它们的流程,比如在书上589页就有如下代码:
out.write(sendBuffer,0,sendBuffer.length);
out.write(buffer2,0,buffer2.length);
我不知道服务器端要怎么判断哪些数据是sendBuffer,哪些是buffer2的?
我今天看了一整天,还是看不明白网络IO的读写,恳请您帮忙较为详细地讲解一下,好吗?谢谢!

关于发送数据的格式,请看一下关于DataHead的定义,这个是关于网络数据格式的,有一个命令字,还有一个是数据包的大小,sendBuffer是DataHead,而buffer2是发送数据的大小。DataHead中Size即为Buffer的大小。

网络IO的读写,对于TCP来说,必须指定的大小读写,这样当收到足够的数据,解析以下,看看下一步的动作。

李老师您好,多谢您上次帮忙解答问题!
但我还有一点不明白,就是关于那个“place += 4;”,您说是每个牌的图片宽度是4,但每个牌的图片宽度不只是4,我想这个“4”是不是指Card类里的4个变量:id,kind,num,reserved?

还有就是在书上的603页,在run()方法里有一句代码:MainForm.inst.userList.removeElement(this);
线程一直都在运行,这样写不会出错吗?
麻烦您帮忙解答,谢谢!

这里的4确实是位置偏移,你看一下,每张牌并不是完全显露,而是每张牌都压着一部分,这个正是每张牌的间隔。MainForm.inst.userList.removeElement(this);这个一句没有问题,userList这个是Vector类型,线程安全的,你看一下书中讲Vector和线程的一部分。

李老师您好,我想再问一个问题,在您的《j2me手机游戏开发技术详解》书上的“网络对战扑克”的例子那里,GameManager类里的代码:for(int i=0;i<27;i++)
{
this.userCard[i].fillData(this.recvBuffer,place);
place += 4;
}
其中的place为什么要+=4?

还有,代码:Card[] userCard=new Card[30];
为什么是30呢?

这两个问题我想了很久都想不出来,希望您可以帮忙解答。
期待您的回复,谢谢!

这两个地方写的不好,应该定义同意的静态常量表示,+4表示是显示位置偏移,每个牌的图片宽度是4。

而30,是由于总共有54张牌,每个人有30个牌位足够。没有别的意

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 52
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 52
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值