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

游戏入门之一 雷电 精灵模型

阅读更多
      设计游戏我个人认为一个好的角色操作将事半工倍。所以我现在把雷电的所有角色抽象成一个Fairy。里面有实现绘制的方法以及移动,碰撞算法。
      在这里我强调下,我的碰撞算法是简单的实现。就是一个物体为参照物体。在10像素范围内x,y轴如果发现另外一个物体侵入则判断为true,发之为false
java 代码
 
  1.    
  2. package org.wuhua.game.model;  
  3.   
  4. import javax.microedition.lcdui.Graphics;  
  5. import javax.microedition.lcdui.Image;  
  6.   
  7. import org.wuhua.game.util.Log;  
  8.    
  9. /** 
  10.  * 类名:Sprite.java 
     
     
  11.  * 编写日期: 2006-11-29 
     
  12.  * 程序功能描述:建立精灵物体模型 
     
  13.  * Demo: 
     
  14.  * Bug: 
     
  15.  *  
  16.  * 程序变更日期 :
     
     
  17.  * 变更作者 :
     
     
  18.  * 变更说明 :
     
  19.  *  
  20.  * @author wuhua 
     
     
  21.  */  
  22. public class Fairy {  
  23.     static Log log = Log.getLog("Fairy");  
  24.     /** 
  25.      * position of Fairy in x offset  
  26.      */  
  27.     int x; // = 0;  
  28.   
  29.     /** 
  30.      * position of Fairy in y offset  
  31.      */  
  32.     int y; // = 0;  
  33.   
  34.     /** 
  35.      * width of layer  
  36.      */  
  37.     int width; // = 0;  
  38.   
  39.     /** 
  40.      * height of layer 
  41.      */  
  42.     int height; // = 0;  
  43.   
  44.     /**  
  45.      * If the Layer is visible it will be drawn when paint 
  46.      * is called. 
  47.      */  
  48.     boolean visible = true;  
  49.       
  50.     /** 
  51.      * 图片资源 
  52.      *   
  53.      */  
  54.       
  55.     Image fairy;   
  56.       
  57.     public Fairy(Image fairy,int x, int y){  
  58.         this.fairy = fairy;  
  59.         this.x = x;  
  60.         this.y = y;  
  61.     }  
  62.       
  63.     public void setPosition(int x, int y) {  
  64.         this.x = x;  
  65.         this.y = y;  
  66.     }  
  67.       
  68.     public void move(int dx, int dy) {    
  69.        
  70.         x += dx;  
  71.         y += dy;  
  72.     }  
  73.       
  74.     public void setVisible(boolean visible) {  
  75.         this.visible = visible;  
  76.     }  
  77.   
  78.      
  79.     public final boolean isVisible() {  
  80.         return visible;  
  81.     }  
  82.   
  83.     public final int getHeight() {  
  84.         return height;  
  85.     }  
  86.   
  87.     public final int getWidth() {  
  88.         return width;  
  89.     }  
  90.   
  91.     public final int getX() {  
  92.         return x;  
  93.     }  
  94.   
  95.     public final int getY() {  
  96.         return y;  
  97.     }  
  98.       
  99.     public void paint(Graphics g){  
  100.         if (g == null) {  
  101.             throw new NullPointerException("Graphics 不存在");  
  102.         }  
  103.         if(this.visible){  
  104.             //log.debug("x=" + x + " y=" + y);   
  105.             g.drawImage(fairy, x, y,  Graphics.TOP | Graphics.HCENTER);  
  106.         }  
  107.     }  
  108.   
  109.     /** 
  110.      * 进行简单的碰撞算法, 希望高手可以给个建议。 
  111.      * @param f 
  112.      * @return 
  113.      */  
  114.     public final boolean collidesWith(Fairy f){  
  115.           
  116.        
  117.         if((f.getX() >= this.getX() - 20 && f.getX() <= this.getX() + 20)  
  118.                 &&  (f.getY() >= this.getY() - 10  && f.getY() <= this.getY()+10 )){  
  119.             //log.debug("this.getY=" + this.getY());  
  120.             //log.debug("f.getY=" + f.getY());  
  121.                
  122.                
  123.             return true;  
  124.         }  
  125.               
  126.         return false;  
  127.     }  
  128.    
  129.   
  130. }  
分享到:
评论
1 楼 lordhong 2006-12-04  
好,关注中。。。

相关推荐

    雷电流模型LEIDIANLIU.pscx

    该模型为在PSCAD平台上建立的雷电流仿真模型,参数为2.6/50us。并设置一个slider模块,便于根据情况设置雷电流的峰值电流,并可以修改相应参数设置为1.2/50us的雷电流模型。

    雷电游戏 飞机大战 MFC版

    《雷电游戏 飞机大战 MFC版》是一款基于微软基础类库(MFC,Microsoft Foundation Classes)开发的经典飞行射击游戏,具有丰富的视觉效果和流畅的游戏体验。在这个项目中,开发者利用MFC的强大功能,构建了一个具备...

    雷电流数学模型MATLAB仿真分析.pdf

    通过这些模型的分析可以更好地理解雷电的特性,进而减少雷电对设施的影响。 3. 雷电流的特征参数 雷电流的几个关键特征参数包括: - 峰值电流 - 上升率 - 峰值时间 - 半峰值时间 通过专家观测和研究统计出的...

    Java小游戏Java雷电游戏Java小游戏Java雷电游戏Java小游戏Java雷电游戏Java小游戏Java雷电游戏

    Java雷电游戏是一款基于Java编程语言开发的小型游戏,它展示了Java在游戏开发中的应用,同时也为学习者提供了深入理解Java基础知识和实践编程技巧的机会。这款游戏的开发涉及到多个Java技术点,包括图形用户界面...

    android雷电的游戏框架

    本文将深入探讨一款名为"雷电游戏框架"的项目,它是一个基于MVC(Model-View-Controller)架构设计的游戏框架,已初具规模并包含了3个完整的关卡。对于那些寻求高效、结构化游戏开发解决方案的Android开发者来说,这...

    一款 类似于雷电的游戏 感兴趣的朋友看看源代码 共同进步

    标题"一款类似于雷电的游戏 感兴趣的朋友看看源代码 共同进步"表明这是一款与经典游戏"雷电"风格相似的项目。雷电是一款流行的垂直滚动射击游戏,由日本公司CAVE开发,以其高速的游戏节奏、复杂的弹幕设计和挑战性...

    基于卷积神经网络的雷电临近预警模型.pdf

    本文主要介绍了一种基于卷积神经网络的雷电临近预警模型,旨在研究人工智能雷电临近预警模型。该模型基于卷积神经网络结构,结合多个时间序列的雷达产品(组合反射率、液态水含量、回波顶高)与闪电数据,对雷电临近...

    雷电模拟器多开中控源码

    在雷电模拟器中,这一功能使得用户能够同时运行和管理多个安卓应用或游戏,极大地提升了工作效率。 而“雷电模拟器多开中控源码”则是用易语言编写的一套控制工具,它允许用户对这些多开的模拟器进行集中控制,实现...

    网页版 雷电游戏

    网页版雷电游戏是利用HTML和JavaScript技术在网页上实现的一种互动娱乐应用。HTML(HyperText Markup Language)是网页内容的结构化标记语言,而JavaScript则是一种解释型、跨平台的编程语言,主要负责网页的动态...

    Java游戏_雷电源码

    本项目名为“Java游戏_雷电源码”,它是一个由个人独立开发的小型游戏,旨在展示Java在游戏设计中的应用,并期待与同样热爱游戏编程的朋友们交流心得,获取宝贵的反馈。 雷电游戏,又被称为飞行射击游戏,是游戏界...

    lua版的雷电游戏

    《lua版的雷电游戏》是一款基于Lua编程语言开发的飞行射击类游戏,它展示了Lua在游戏开发中的强大应用。Lua是一种轻量级的脚本语言,因其简洁、高效的特性,常被用作游戏的逻辑层或配置文件解析。在这个项目中,...

    Java雷电小游戏

    【Java雷电小游戏】是一款基于Java编程语言开发的娱乐项目,它再现了经典的街机游戏——雷电的玩法,融入了独特的boss战斗环节,为玩家提供了丰富的游戏体验。这款小游戏展示了Java在游戏开发领域的应用,同时也体现...

    基于FDTD算法的分布式串联电感雷电回击模型特性研究.pdf

    总的来说,基于FDTD算法的分布式串联电感雷电回击模型提供了一个研究雷电现象的新视角,它能够更真实地模拟雷电流的动态过程,为雷电防护和电磁环境研究提供了有力的工具。同时,这一研究也为未来分布式系统的设计和...

    基于java的雷电游戏

    基于java的雷电游戏基本功能包括:敌方飞机随机飞行、我方飞机手动控制飞行,射击比拼,游戏闯关等。本系统结构如下: (1)雷电游戏状态调整功能: 在游戏启动时,游戏会自动进行初始化的验证。 若初始化成功后...

    触屏Java游戏 雷电ⅱ.jar(含截图+源代码 )

    触屏Java游戏 雷电ⅱ.jar(含截图+源代码 )触屏Java游戏 雷电ⅱ.jar(含截图+源代码 )触屏Java游戏 雷电ⅱ.jar(含截图+源代码 )触屏Java游戏 雷电ⅱ.jar(含截图+源代码 )触屏Java游戏 雷电ⅱ.jar(含截图+源...

    JAVA雷电小游戏

    【JAVA雷电小游戏】是一款基于Java编程语言开发的休闲小游戏,设计灵感来源于经典的"雷电"系列。在这款游戏中,玩家将控制一架飞机在屏幕上移动,躲避敌机和障碍物,同时打击目标以获得分数。游戏的核心编程理念是...

    vc6开发类似雷电游戏源码

    在本文中,我们将深入探讨如何使用Microsoft Visual C++ 6.0(简称VC6)来开发一款类似"雷电"的飞行射击游戏。"雷电"游戏是一款经典的垂直滚动射击游戏,深受玩家喜爱。通过分析提供的文件名"FightPlane",我们可以...

    android版的雷电小游戏

    【Android版的雷电小游戏】是一款基于Android平台的射击类游戏,它继承了经典街机游戏《雷电》的精髓,提供了快节奏、刺激的空战体验。对于想要学习Android游戏开发的朋友们来说,这是一个非常有价值的参考项目。...

    java雷电游戏程序

    【Java雷电游戏程序】是一款基于Java编程语言开发的仿制经典街机游戏"雷电"的项目。这个程序展示了如何使用Java进行游戏开发,涵盖了图形用户界面(GUI)、对象动画、碰撞检测以及游戏逻辑等多个方面的知识。 首先...

Global site tag (gtag.js) - Google Analytics