JAVA网页编程之J2ME 2D小游戏进门之旅(二)完美周边工具...
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中。今后也用这类映照办法来读取字符。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;
for(inti=0;i<charhash.length;i++){
charhash=-1;//没有代表此字符的图片
}
Characterc;
for(inti=0;i<chars.length;i++){
c=newCharacter(chars);
charhash=i;
}
}
publicvoiddrawChar(charch,intx,inty){
Characterc=newCharacter(ch);
inthashcode=c.hashCode();
sprite.setPosition(x,y);
if(hashcode>=0){
sprite.setFrame(charhash);
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这些工具的出来。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种使用者不需花费很多时间学习的语言 Java 编程语言的风格十分接近C、C++语言。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种使网页(Web Page)产生生动活泼画面的语言 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页:
[1]