网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.读取数码照片中的Exif信息.
.test 方法.
.Java的复杂数据类型.
.Java 和 XML 为何将成功.
.Netscape 修复JAVA安全漏洞.
.轻松掌握 Java 泛型 (第 3 部分).
.搭建Linux下Java开发环境.
.让界面更加绚丽 Java SE 6.0 GUI.
.使用JWSDP完成Web Service在java.
.漫谈Java程序设计中的接口应用.
.TOMCAT+JIVE的安装配置(支持中文).
.TOMCAT与Resin之我的见解.
.Java套接字编程(下)(1).
.O/RMAPPING(Hibernate)方法小结.
.用java中的canendal 如何计算两个.
.JBuilder2005破解及采用JDK1.5.
.哇! 我没看错吧? J2SE 6.0!!!!!!.
.让Struts与Hibernate顺利协同工作.
.面向对象思想之 -- 继承以及多态.
.新版JDeveloper9.0.3.

Nokia UI学习范例FishTank研究

发表日期:2008-1-5


    由于MIDP1.0中提供的API比较有限,因此Nokia实现了自己的类库来提供补充。其中包括声音的支持、屏幕的背景光和机器震动、图像的翻转、Alpha通道以及对像素的操作支持。学习Nokia UI的使用的最好例子莫过于Nokia官方提供的FishTank了。本文讲主要介绍一下这个范例,其中的一些思路和技巧是值得我们学习的。

Nokia UI学习范例FishTank研究(图一)FishTank的界面比较简单,只有一个屏幕。池塘里的鱼儿不停的游动,水底的水草也不停的漂浮。这个界面是分层设计的,因此引入了一个变量z,这样就和水平参数x和垂直参数y构成了三维的空间。其中水草处于中间层。鱼的游动是无规律的,其中的算法我们可以参考,当鱼触及到边缘的时候,它会反向游动。通过Nokia UI中提供的水平翻转可以实现。 dg.drawImage(img, x, y, (Graphics.LEFT Graphics.TOP),DirectGraphics.FLIP_HORIZONTAL);水草的游动也是随机的

 

    下面我们看看整个应用的结构
Nokia UI学习范例FishTank研究(图二)

点击查看大图

 

 

 

 

 

 

 

程序总共有四个类组成,其中我们主要关注的是FishTankCanvas、Fish和Weeds。其中Fish和Weeds比较相似,他们代表了两个对象鱼儿和水草。而FishTankCanvas是FullCanvas的子类并且实现了Runnable接口,它是一个独立的线程。每隔一段时间他会更新一下Fish和Weeds的状态,然后重新绘制屏幕。run()方法中的代码如下
    public void run()
    {
        Thread currentThread = Thread.currentThread();

        try
        {
            // This ends when animationThread is set to null, or when
            // it is subsequently set to a new thread; either way, the
            // current thread should terminate
            while (currentThread == animationThread)
            {
                long startTime = System.currentTimeMillis();

                // Only animate when the canvas is visible.
                if (isShown())
                {
                    tick();

                    // Repaint everything above the sand, the fish
                    // never swim at h > waterHeight.
                    repaint(0, 0, waterWidth, waterHeight);
                    serviceRepaints();
                }


上一篇:MIDP1.0小游戏入门-五子棋1.0 人气:641
下一篇:游戏开发小技巧—低级界面下的文本自动换行 人气:729
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐