`
wuhua
  • 浏览: 2099212 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

游戏中动画的基础

阅读更多
全文请看
游戏中动画的基础
这篇文章是纯粹的个人看法。
游戏的基础是动画,想来大家都知道。这几天公司的项目都忙完了。很是无聊,所以就上网找了些资源,并写两个动画的例子。在此贴出来,让大家把砖头砸我吧。^_^
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. }
  • 大小: 6.7 KB
  • 大小: 182.3 KB
分享到:
评论
16 楼 wuhua 2006-12-01  
哈哈。我刚才也看了你的那个游戏,感觉不错。
15 楼 fins 2006-12-01  
在这里遇到喜欢游戏编程的不容易啊 呵呵
又搞游戏 又j2ee的人不多 加你做好友了  快通过啊 呵呵
14 楼 whycloud 2006-11-29  
我那个完成主体的是一个射箭的游戏,就实现了一个抛物飞行,一个计算环数
等有时间的时候整理一下发出来吧
13 楼 wuhua 2006-11-29  
whycloud 写道
wuhua 写道
哈哈。楼上的你自己实现过双缓冲码?
实现是不是先创建一个可绘制的Image,然后在上面做些事情啊。
对了。你有设计游戏码

是的,就是你说的那样
不过我自己没手动在J2ME上实现过,在J2SE上做过
游戏设计过两个都是3D方面的一个游戏主体完成了
另一个做到一半的时候硬盘坏掉了,弄的本来说好要把第二个弄完给mingjava做教程的,最后也没完成……
我以前也写过一个玛丽赛跑的游戏,那个游戏很弱智的。而起碰撞算法实现的不好。机会是没碰到就倒下了。
12 楼 whycloud 2006-11-29  
wuhua 写道
哈哈。楼上的你自己实现过双缓冲码?
实现是不是先创建一个可绘制的Image,然后在上面做些事情啊。
对了。你有设计游戏码

是的,就是你说的那样
不过我自己没手动在J2ME上实现过,在J2SE上做过
游戏设计过两个都是3D方面的一个游戏主体完成了
另一个做到一半的时候硬盘坏掉了,弄的本来说好要把第二个弄完给mingjava做教程的,最后也没完成……
11 楼 lordhong 2006-11-29  
基本上REPAINT()需要改变的GRAPHICS的部分.
去年做了几个业余的很弱智的游戏...MOTO V3上测试过... 在CSDN还被发在首页连接上... =.=# 爆汗...
10 楼 wuhua 2006-11-28  
哈哈。楼上的你自己实现过双缓冲码?
实现是不是先创建一个可绘制的Image,然后在上面做些事情啊。
对了。你有设计游戏码
9 楼 wuhua 2006-11-28  
哈哈。楼上的你自己实现过双缓冲码?
实现是不是先创建一个可绘制的Image,然后在上面做些事情啊。
对了。你有设计游戏码
8 楼 whycloud 2006-11-28  
wuhua 写道
whycloud 写道
忘记一点,在MIDP2中可以设置关于双缓冲的。但是在MIDP规范中并没有强制要求一定要设备支持,所以如果是MIDP2设置双缓冲的话,一定要判断设备是否支持


对了。兄台可以在这里加上一段关于怎么判断是否支持双缓冲码?

刚一问还真想了半天,现在想起来了
在midp2中Canvas有一个public boolean isDoubleBuffered()方法来判断该设备是否支持二重缓冲,如果不支持还是需要手动实现的
7 楼 wuhua 2006-11-28  
恩。好的。让大家也学习学习
6 楼 whycloud 2006-11-28  
恩,我回去找找,那个FoxDown的教程回头发到圈子里吧
不过那个一直就没找到作者
5 楼 半路出家 2006-11-28  
wuhua 写道
对啊。上面的例子我并没有用到game的包。
都是在Canvas中绘制的。
其实自己都可以实现双缓冲功能。只是看看有没有这个必要。
呵呵
4 楼 wuhua 2006-11-28  
whycloud 写道
忘记一点,在MIDP2中可以设置关于双缓冲的。但是在MIDP规范中并没有强制要求一定要设备支持,所以如果是MIDP2设置双缓冲的话,一定要判断设备是否支持


对了。兄台可以在这里加上一段关于怎么判断是否支持双缓冲码?
3 楼 wuhua 2006-11-28  
对啊。上面的例子我并没有用到game的包。
都是在Canvas中绘制的。
其实自己都可以实现双缓冲功能。只是看看有没有这个必要。
呵呵
2 楼 whycloud 2006-11-28  
忘记一点,在MIDP2中可以设置关于双缓冲的。但是在MIDP规范中并没有强制要求一定要设备支持,所以如果是MIDP2设置双缓冲的话,一定要判断设备是否支持
1 楼 whycloud 2006-11-28  
我怎么感觉这里面没有用到GAME包呢?
这效果我觉得有一个非常的好的教程代码
是那个foxdonw的教程,如果用GAME包的话那个
有一个做"撑过20秒"的教程也非常有帮助

相关推荐

    3dsmax游戏角色动画师教程——Max动画基础01基础技巧

    3DMAX游戏角色动画师教程(腾飞老师亲讲)【价值300元】3dsmax游戏角色动画师教程【Max动画基础01基础技巧】——3dmax游戏角色动画教程,3dmax初学入门,下载,系统全面的3dmax教程,从基础到高级,大量高端案例教程,学3d...

    游戏动画设计基础.md

    1.基础绑定讲解 2.角色骨骼搭建 3.角色权重调整 课程目标: 1.掌握骨骼结构,权重原理 2.骨骼工具,重命名工具 3.绑定的提交规范 4.更加熟练绑定的技巧 想要了解更多的小伙伴可以搜索艺点动画科技有限公司...

    android游戏开场动画源代码

    Android平台很经典的游戏Abduction(奶牛跳高)开场动画源代码。

    3D游戏角色动画 3D游戏角色动画 3D游戏角色动画 3D游戏角色动画

    2. 3D游戏动画基础------基于时间的运动 在一个游戏项目中,计时扮演了一个重要的角色。基于时间的运动,也就是创建计时器来控制运动。它能够产生这样一种动画效果:同样处理10000帧的动画序列,可以根据需要灵活地...

    游戏动画基础 行走的恐龙

    游戏动画基础2 行走的恐龙 WIN32 SDK 实现动画

    HTML5+JavaScript 动画基础 2013年出版423页

    《HTML5+JavaScript动画基础》包括了基础知识、基础动画、高级动画、3D动画和其他技术5大部分,分别介绍了动画的基本概念、动画的JavaScript基础、动画中的三角学、渲染技术、速度向量和加速度、边界与摩擦力、用户...

    《HTML5+JavaScript动画基础》源代码

    《HTML5+JavaScript动画基础》源代码

    HTML5+JavaScript动画基础(中文完整版)

    HTML5+JavaScript动画基础(中文完整版)

    动画基础技法PSD格式文件

    动画基础技法PSD 可用于游戏动画,影师动画中,动画运动的基础知识。 动画人的宝典。

    【课件】Java程序设计_游戏动画案例教程

    第1~6章是Java基础知识,使学生初步了解游戏程序的特征与组成要素,并扫清游戏动画程序开发的知识障碍; 第7~11章是面向对象程序设计,也是本书的重点,采用Greenfoot教学工具详细讲解面向对象程序设计的概念、特点...

    GDI实现游戏品质的动画系统

    GDI实现游戏品质的动画系统。GDI基础,WINDOWS下的基本动画系统及使用DIB。 需要有C/C++基础,MFC编程经验和GDI基本概念基础。

    《游戏动画色彩基础教程》-源文件.rar

    《游戏动画色彩基础教程》-源文件.rar

    游戏入门基础 《游戏编程》 基础篇

    目录:  零、基础篇的目的  一、游戏的动画原理  二、基于动画原理的提高  三、游戏的基石: 窗口 的建立  四、游戏制作利器: 引擎 的选择

    3D游戏卷2:动画与高级实时渲染技术——1

    附录7.3 角色动画中效率的考虑 第8章 动画成形方法 8.1 简介 8.2 样条框架 8.3 自由形状变形 8.4 扩展自由形状变形(EFFD) 8.5 曲线变形——铰线 8.6 皮肤控制 8.6.1 面向表面的自由形状变形(SOFFD) 8.6.2 骨架皮肤...

    3D游戏角色动画-Elaina(全流程人物建模)<一>

    以给出游戏人物+动物的基础模型或者图片,进行完整的模型重建过程。 对游戏人物+动物模型做出特效、头部、盔甲、服装、武器等方面修改。 要求对游戏人物+动物模型设定一组新的完整动作,其他请结合创意修改。 根据...

    3ds Max 2016动画制作基础案例视频教程第08章 摄影机及灯光动画.zip

    教程内容共分为17章,所有例子都是精心挑选和制作的,将3ds Max 2016枯燥的知识点融入实例之中,并进行了简要而深刻的说明,可以帮助读者更好地掌握3ds Max 2016的使用操作和动画制作思路,提高读者的软件应用以及...

    HTML5 Canvas核心技术 图形、动画与游戏开发

    23 1.8 在canvas中使用html元素 25 1.9 打印canvas的内容 32 1.10 离屏canvas 35 1.11 基础数学知识简介 37 1.11.1 求解代数方程 37 1.11.2 三角函数 38 1.11.3 向量运算 39 1.11.4 根据计量单位来推导等式 ...

    3D数学基础:图形与游戏开发.pdf

    3d数学基础,游戏开发必备 怎样用数值方法解决几何问题的学科。3D数学和计算几何广泛应用在那些使用计算机来模拟3D世界的领域,如图形学、游戏、仿真、机器人技术、虚拟现实和动画等。 本书涵盖了理论知识和C++实现...

    数字动画的制作

    动画和动画片是两个不同的概念,动画涵盖了一个非常广泛的领域,包括影视动画片、影视特技动画、广告动画、游戏动画、军事演习模拟、科学可视化、医学、教育等。从制作角度来说,数字动画是在传统动画的基础上,采用...

Global site tag (gtag.js) - Google Analytics