`
wuhua
  • 浏览: 2099189 次
  • 性别: 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的雷电流模型。

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

    Java雷电小游戏,要是你们能做出这个游戏的话Java基础还是会更扎实一些的。安装好了会自动弹出那个窗口。安装目录中有那个源码,桌面上会有一个plane的图标点击就可以进去了。

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

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

    雷电游戏 飞机大战 MFC版

    基于MFC实现的雷电游戏。 画面精美,性能优良。 设置多种敌机,及物品。 可直接编译运行,并附上说明文档

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

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

    基于java的雷电游戏

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

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

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

    Python 有点雷电游戏的飞机大战.rar

    源代码中的注释还是相当多的,Python初学者可学习研究下游戏的相关编写技巧,特别是游戏中的一上结动画效果相当有借鉴性,以下是注释摘录:  Python 有点雷电游戏的飞机大战  定义敌机对象使用的surface相关参数 ...

    使用java开发的雷电游戏.zip

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

    基于java的雷电游戏.zip

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

    java雷电游戏程序

    java仿雷电游戏程序及代码,可直接运行,实现了原版雷电的基本功能

    Java JOGL Demo 雷电游戏.zip

    Java JOGL Demo 雷电游戏.zipJava JOGL Demo 雷电游戏.zip Java JOGL Demo 雷电游戏.zipJava JOGL Demo 雷电游戏.zip Java JOGL Demo 雷电游戏.zipJava JOGL Demo 雷电游戏.zip Java JOGL Demo 雷电游戏.zipJava ...

    仿雷电射击游戏(基于VC++MFC)

    飞行射击游戏,C++编写,使用VC++ 6.0或者相关编译软件即可运行。相关的说明文档在内部有,每个类的用法以及功能描述都在里面,更多内容见文档。欢迎下载。

    基于ios的cocos2dx雷电游戏(纵轴射击类游戏)

    本demo是在雷电游戏基本功能完成的基础上,又增加了摇杆模式和精灵关卡。游戏主要功能包括选择关卡,游戏控制模式设置,分数存储,游戏介绍,各关卡中的功能完善,飞机的子弹有普通模式和追踪模式,敌机也一样,还有...

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

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

    Android 雷电游戏源码

    Android 雷电游戏源码--来自网络 仅供学习 如有侵权 请联系删除

    【经典Android游戏源码18】雷电2015射击小游戏源码

    【经典Android游戏源码18】雷电2013射击小游戏源码

    Java雷电小游戏

    以前java课的小游戏,雷电带boss

Global site tag (gtag.js) - Google Analytics