仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1163|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网页编程之J2ME 2D小游戏进门之旅(二)完美周边工具...

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
J2ME在手机游戏开发的作用也是无用质疑的。至于桌面程序,可能有人说java不行,界面不好看,但是请看看NetBeans和Eclipse吧,他们都是利用java开发的,而他们的界面是多么的华丽,所以界面决不是java的缺点。还有一个不得不提的优点就是大多java人员都挂在嘴边的java的跨平台性,目前这确实也是java优点之一。2、完美周边工具类(图像、GameObject、Font)

固然我们有了midp2.0的撑持,可是偶然仍是必要一些帮助工具,便利我们利用。这怕是在举行真实的游戏计划之前最风趣的了。

1,起首是一个ImageTools工具类,供应一个办法匡助挪用Image
publicclassImageTools{
protectedImageTools(){
}

publicstaticImagegetImage(Stringstr){
Imageimg=null;
try{
img=Image.createImage(str);
}
catch(Exceptionex){
System.out.println(ex);
}
finally{
returnimg;
}
}
}

2.GameObject,供应一个通用的游戏对象。

有了Sprite类,为何还要GameObject呢?实在我们通常为将Sprite,看做成一个初级的Image,常常一个Sprite要被多个游戏对象挪用,GameObject实在就是Sprite的形态类。GameObject供应复杂的性命周期观点,动画更新速率;

publicclassGameObject{

publicSpritesprite;//内置的Sprite
publicbooleanalive;//存活标志
privateintlifecount=0;//性命周期计数器
publicintlifetime=0;//性命周期,以桢为单元
publicintspeed=0;//动画桢更新速率,(0至无量,0代表每桢跟新一个画面)
privateintanimcount=0;///动画桢更新计数器

publicGameObject(Imageimg,intwidth,intheight){
sprite=newSprite(img,width,height);
reset();
}

publicvoidmove(intdx,intdy){//绝对挪动
sprite.move(dx,dy);
}

publicvoidmoveto(intx,inty){//相对挪动
sprite.setPosition(x,y);
}

publicvoidupdate(){//更新形态,动画桢更新,性命周期更新

if(!alive)
return;
if(++animcount>speed){
animcount=0;
sprite.nextFrame();
if(lifetime!=0&&++lifecount>lifetime)
alive=false;
}
}

publicvoidpaint(Graphicsg){//Paint

if(!alive)
return;
sprite.paint(g);
}

publicvoidreset(){//复位
alive=true;
lifecount=0;
animcount=0;
sprite.setFrame(0);
}
}

3.封装字体类,你必要大度的字体吗?

我们常常必要用图片来输入笔墨,一个便利的字体类是必需的。我们但愿仅仅供应一个图片,一个图片所形貌的字符的数组,来初始化一个字体类。字体类供应一个相似Textout的办法,便利得在一个地位输入信息。先封装一个复杂的版本,只撑持英文和数字,而且输入不克不及主动换行。大概你有一个复杂的思绪,就是复杂的保留字符数组,当打印的时分遍历数组,来查找每一个字符在sprite的frameseq中的index,但当我们打印一个字符串的时分就会发明,太多的遍历操纵延误了可贵工夫,这里我们利用一个小技能用容量调换速率,我们晓得Character.hashCode()能够前往字符的ascii编码,经常使用字符将前往1-127;使用这一点,我们启示一个128的数组charhash,将输出的字符c地点图片index存进charhash[c.hashCode()]中。今后也用这类映照办法来读取字符。charhash的元素初值为-1,今后只需数值年夜于0就是无效值。

publicclassFont{

Spritesprite;//Sprite
intwidth,height;//每一个char的尺寸
int[]charhash;//贮存1-127个罕见字符在sprite的frameseq中的地位
Graphicsg;

publicFont(Graphicsg,Imageimg,intwidth,intheight,char[]chars){

this.g=g;
sprite=newSprite(img,width,height);
this.width=width;
this.height=height;
charhash=newint[128];
for(inti=0;i<charhash.length;i++){
charhash[i]=-1;//没有代表此字符的图片
}
Characterc;
for(inti=0;i<chars.length;i++){
c=newCharacter(chars[i]);
charhash[c.hashCode()]=i;
}
}

publicvoiddrawChar(charch,intx,inty){
Characterc=newCharacter(ch);
inthashcode=c.hashCode();
sprite.setPosition(x,y);
if(hashcode>=0){
sprite.setFrame(charhash[hashcode]);
sprite.paint(g);
}
}

publicvoiddrawString(Stringstr,intx,inty){
intlength=str.length();
for(inti=0;i<length;i++){
drawChar(str.charAt(i),x+width*i,y);
}
}
}

如许只需有一个实例font,就能够挪用font.drawString(“hello”,0,0);

在0,0地位输入大度的图片字符串。怎样还挺好使的吧:)




其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。
山那边是海 该用户已被删除
沙发
发表于 2015-1-21 10:59:00 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-30 16:10:48 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
再见西城 该用户已被删除
地板
发表于 2015-1-30 16:10:48 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
变相怪杰 该用户已被删除
5#
发表于 2015-2-3 15:03:23 来自手机 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
透明 该用户已被删除
6#
发表于 2015-2-4 21:02:26 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
谁可相欹 该用户已被删除
7#
发表于 2015-2-4 22:36:26 | 只看该作者
是一种使用者不需花费很多时间学习的语言
乐观 该用户已被删除
8#
发表于 2015-2-6 00:38:10 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
若相依 该用户已被删除
9#
发表于 2015-2-26 23:23:53 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
兰色精灵 该用户已被删除
10#
发表于 2015-3-2 14:55:34 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
分手快乐 该用户已被删除
11#
发表于 2015-3-11 03:57:23 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
蒙在股里 该用户已被删除
12#
发表于 2015-3-19 05:47:31 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
小妖女 该用户已被删除
13#
发表于 2015-3-24 19:47:01 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
灵魂腐蚀 该用户已被删除
14#
发表于 2015-3-26 06:39:18 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
小女巫 该用户已被删除
15#
发表于 2015-3-26 15:49:02 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
飘飘悠悠 该用户已被删除
16#
发表于 2015-4-1 19:44:54 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
不帅 该用户已被删除
17#
发表于 2015-4-12 12:52:54 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
海妖 该用户已被删除
18#
发表于 2015-4-17 04:59:15 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
精灵巫婆 该用户已被删除
19#
发表于 2015-4-25 12:41:40 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-22 03:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表