无花的空间--http://wuhua.3geye.net-- 您今天UCWEB了吗?--http://www.ucweb.com

当你来到我的空间的时候,你会看到很多Google,Nokia,Mobile,J2ME ,Android,3G,无线开发,手机软件,手机软件开发等与Google,手机相关的文章,你千万不要惊讶。这就是我一个专注Google,无线开发的无花。传播知识,分享经验,技术交流是我开空间的直接目的。当然如果有项目开发,我还是很希望赚点外快的。

用户操作
[即时聊天] [发私信] [加为好友]
无花ID:gooogledev
40542次访问,排名2971,好友20人,关注者24人。
J2EE 2年的开发时间,
J2ME 2年的开发时间
gooogledev的文章
原创 80 篇
翻译 0 篇
转载 3 篇
评论 201 篇
无花的公告

人要吃很多苦才可以长大!

踏实平凡人应该遵守的原则!

与我TM

gooogledev@gmail.com

友情链接

我的j2me创意

Wap浏览器的源代码

用自己写的rms引擎写的电话本

RSS订阅此博客  
用抓虾订阅此博客
用google订阅此博客
用bloglines订阅此博客
    网络封神榜 | 饶荣庆
最近评论
22:main()在哪个.java中
ant-shopping:I support author's viewpoint, hoped that will have later also more better articles,
abercrombie fitch handbag
ptsell:I support author's viewpoint, hoped that will have later also more better articles,
Balenciaga Bags
真的假的,屁股上的痣也能拍出来?
leo2012:奇怪,怎么下的wap explorer不能访问wap站点
文章分类
收藏
    相册
    j2me创意图片
    j2me教程
    我的照片
    我的链接
    3G视线
    EasyMF J2ME框架
    Lucene中国
    我的Google
    无花的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 游戏中动画的基础 收藏

    新一篇:  一个读取Gmail邮件的简单程序 | 

     http://googledev.blog.hexun.com/8315619_d.html




     这篇文章是纯粹的个人看法。
    游戏的基础是动画,想来大家都知道。这几天公司的项目都忙完了。很是无聊,所以就上网找了些资源,并写两个动画的例子。在此贴出来,让大家把砖头砸我吧。^_^
    j2me midp2.0有个game的包是用来设计有游戏用的。它提供了游戏设计的基础控件,比如双缓冲,精灵,图层控制器等基础设施,这些设施可以方便我们的设计,比如双缓冲可以让游戏执行流畅,精灵等,可以更好的控制角色。
    说白了。动画的效果其实就是一幅幅图片按照指定的时间一幅幅的换图片而已。
    好了。看代码吧。

     

    java 代码

    1. package org.wuhua.game.timer;

    2. import java.util.Timer;
    3. import java.util.TimerTask;

    4. /**
    5. * 对Timer的包装
    6. * @author wuhua
    7. */
    8. public class TimerTaskManager {
    9. private Timer _timer;

    10. static TimerTaskManager instace;

    11. public static TimerTaskManager getInstace() {
    12. if (instace == null )
    13. instace = new TimerTaskManager();
    14. return instace;
    15. }

    16. public TimerTask add(Runnable runnable, long period) {
    17. TimerTask task = new RunnableTimerTask(runnable);
    18. long delay = period;
    19. getTimer().schedule(task, delay, period);
    20. return task;
    21. }

    22. void close() {
    23. if (_timer != null ) {
    24. _timer.cancel();
    25. _timer = null;
    26. }
    27. }

    28. private Timer getTimer() {
    29. if (_timer == null )
    30. _timer = new Timer();
    31. return _timer;
    32. }

    33. static class RunnableTimerTask extends TimerTask {
    34. private Runnable _runnable;

    35. RunnableTimerTask(Runnable runnable) {
    36. _runnable = runnable;
    37. }

    38. public void run() {
    39. _runnable.run();
    40. }
    41. }
    42. }
    java 代码

    1. package org.wuhua.game;

    2. import java.io.IOException;
    3. import java.util.TimerTask;

    4. import javax.microedition.lcdui.Canvas;
    5. import javax.microedition.lcdui.Graphics;
    6. import javax.microedition.lcdui.Image;

    7. import org.wuhua.game.timer.TimerTaskManager;



    8. /**
    9. * 动画的主类
    10. * @author wuhua
    11. */
    12. public class Game extends Canvas implements Runnable{

    13. private Image source;
    14. private Image action[] = new Image[ 10 ];
    15. private int bgcolor = 0x209C00 ;
    16. private TimerTask task;
    17. private static int next;
    18. Game(){
    19. try {
    20. source = Image.createImage("/action.png");
    21. } catch (IOException e) {

    22. e.printStackTrace();
    23. }
    24. //切割图片
    25. for ( int i= 0 ; i< 5 ; i++){
    26. action[i] = Image.createImage(source, 96*i, 0, 96, 60, 0);
    27. }

    28. for ( int j= 5 ; j< 10 ; j++){
    29. action[j] = Image.createImage(source, 96*(j-5), 102, 96, 80, 0);
    30. }

    31. //这个是用来执行动作的计时器。原理是要求经过0.2毫秒动一次
    32. task = TimerTaskManager.getInstace().add(this, 150);
    33. }
    34. protected void paint(Graphics g) {
    35. fillScreen(g);
    36. paintAction(g);

    37. }
    38. private void fillScreen(Graphics g) {
    39. g.setColor(0xFFFFFF);
    40. g.fillRect(0, 0, this.getWidth(), this.getHeight());

    41. }
    42. private void paintAction(Graphics g) {
    43. if (next == 10 )
    44. next =0;
    45. //如果绘制的图片是出雷电的时候,让人物停留在那里。这样的效果会好点
    46. if (next>= 5 ){
    47. g.drawImage(action[4], 10*4, 0, Graphics.LEFT|Graphics.TOP);
    48. }
    49. g.drawImage(action[next], 10*next, 0, Graphics.LEFT|Graphics.TOP);


    50. next++;

    51. }
    52. public void run() {
    53. repaint();

    54. }



    55. }
     

    发表于 @ 2007年03月26日 11:22:00|评论(loading...)|编辑

    新一篇:  一个读取Gmail邮件的简单程序 | 

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 无花