Java Android 游戏开发框架LGame-0 2 7发布

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

2010-08-19更新内容:

1、针对Android版增加了多点触摸支持。

2、增加了一组模拟按钮,以Screen实现Emulator监听(此监听器对应8种按钮事件)即可直接使用。

3、增加了一些细节处的功能扩展,譬如Android版LSystem类已和JavaSE版一样提供了大量系统环境参数。

4、修正了某些环境会遇到的中文乱码问题以及新发现的框架BUG(旧版LGraphics类仿J2ME实现部分有BUG,建议更新此版)。

源码及jar下载地址:http://loon-simple.googlecode.com/files/LGame-0.2.7.7z

Android版启动函数变更:

在0.2.7版中,略微变更了游戏初始化方式,入口函数改为onMain。

  1. public class Main extends LGameAndroid2DActivity {  
  2.       
  3.     public void onMain() {  
  4.         //this.initialization(false,LAD.LEFT, "Admob ID",60);  
  5.         this.initialization(false);  
  6.         this.setShowLogo(false);  
  7.         this.setScreen(new EmulatorTest());  
  8.         this.setFPS(50);  
  9.         this.setShowFPS(true);  
  10.         this.showScreen();  
  11.     }  
  12. }  
public class Main extends LGameAndroid2DActivity {  public void onMain() {  //this.initialization(false,LAD.LEFT, "Admob ID",60);  this.initialization(false);  this.setShowLogo(false);  this.setScreen(new EmulatorTest());  this.setFPS(50);  this.setShowFPS(true);  this.showScreen(); }}

新增模拟按钮的使用

为了适应复杂操作环境及格斗游戏需要,特为Android及JavaSE版LGame新增一组模拟按钮,在任意Screen中实现EmulatorListener监听即可调用。

基本使用方式如下:

  1. package org.loon.test;  
  2. import org.loon.framework.android.game.action.sprite.ColorBackground;  
  3. import org.loon.framework.android.game.core.EmulatorListener;  
  4. import org.loon.framework.android.game.core.graphics.LColor;  
  5. import org.loon.framework.android.game.core.graphics.Screen;  
  6. import org.loon.framework.android.game.core.graphics.device.LGraphics;  
  7. import android.view.KeyEvent;  
  8. import android.view.MotionEvent;  
  9. //所有的Screen(Screen、ThreadScreen、CanvasScreen)只要实现EmulatorListener监听,  
  10. //即会自动调用模拟按键。   
  11. public class EmulatorTest extends Screen implements EmulatorListener {  
  12.     private ColorBackground background;  
  13.     public EmulatorTest() {  
  14.                //通过getEmulatorButtons函数可以返回当前模拟按钮的数组集合。   
  15.                //getEmulatorButtons();  
  16.     }  
  17.     // 0.2.7版新增函数,会在Screen构建完成后执行并加载其中数据  
  18.     public void onLoad() {  
  19.         // 制作一块红色的背景,大小为48x48  
  20.         this.background = new ColorBackground(LColor.red, 4848);  
  21.         // 居中(ColorBackground本身为精灵)  
  22.         this.centerOn(background);  
  23.         // 加载  
  24.         this.add(background);  
  25.     }  
  26.     public void draw(LGraphics g) {  
  27.     }  
  28.     // 0.2.7版新增函数,仿照rokon同名函数构建,仅在支持多点触摸的环境中才能被触发。  
  29.     public void onTouch(float x, float y, MotionEvent e, int pointerCount,  
  30.             int pointerId) {  
  31.     }  
  32.     public boolean onKeyDown(int keyCode, KeyEvent e) {  
  33.         return true;  
  34.     }  
  35.     public boolean onKeyUp(int keyCode, KeyEvent e) {  
  36.         return true;  
  37.     }  
  38.     public boolean onTouchDown(MotionEvent e) {  
  39.         return true;  
  40.     }  
  41.     public boolean onTouchMove(MotionEvent e) {  
  42.         return true;  
  43.     }  
  44.     public boolean onTouchUp(MotionEvent e) {  
  45.         return true;  
  46.     }  
  47.     public void onUpClick() {  
  48.         if (background != null) {  
  49.             background.move_up(4);  
  50.         }  
  51.     }  
  52.     public void onDownClick() {  
  53.         if (background != null) {  
  54.             background.move_down(4);  
  55.         }  
  56.     }  
  57.     public void onLeftClick() {  
  58.         if (background != null) {  
  59.             background.move_left(4);  
  60.         }  
  61.     }  
  62.     public void onRightClick() {  
  63.         if (background != null) {  
  64.             background.move_right(4);  
  65.         }  
  66.     }  
  67.     public void onCancelClick() {  
  68.         if (background != null) {  
  69.             background.setVisible(false);  
  70.         }  
  71.     }  
  72.     public void onCircleClick() {  
  73.           
  74.     }  
  75.     public void onSquareClick() {  
  76.     }  
  77.     public void onTriangleClick() {  
  78.         if (background != null) {  
  79.             background.setVisible(true);  
  80.         }  
  81.     }  
  82.     public void unCancelClick() {  
  83.     }  
  84.     public void unCircleClick() {  
  85.     }  
  86.     public void unDownClick() {  
  87.     }  
  88.     public void unLeftClick() {  
  89.     }  
  90.     public void unRightClick() {  
  91.     }  
  92.     public void unSquareClick() {  
  93.     }  
  94.     public void unTriangleClick() {  
  95.     }  
  96.     public void unUpClick() {  
  97.     }   
package org.loon.test;import org.loon.framework.android.game.action.sprite.ColorBackground;import org.loon.framework.android.game.core.EmulatorListener;import org.loon.framework.android.game.core.graphics.LColor;import org.loon.framework.android.game.core.graphics.Screen;import org.loon.framework.android.game.core.graphics.device.LGraphics;import android.view.KeyEvent;import android.view.MotionEvent;//所有的Screen(Screen、ThreadScreen、CanvasScreen)只要实现EmulatorListener监听,//即会自动调用模拟按键。 public class EmulatorTest extends Screen implements EmulatorListener { private ColorBackground background; public EmulatorTest() {               //通过getEmulatorButtons函数可以返回当前模拟按钮的数组集合。                //getEmulatorButtons(); } // 0.2.7版新增函数,会在Screen构建完成后执行并加载其中数据 public void onLoad() {  // 制作一块红色的背景,大小为48x48  this.background = new ColorBackground(LColor.red, 48, 48);  // 居中(ColorBackground本身为精灵)  this.centerOn(background);  // 加载  this.add(background); } public void draw(LGraphics g) { } // 0.2.7版新增函数,仿照rokon同名函数构建,仅在支持多点触摸的环境中才能被触发。 public void onTouch(float x, float y, MotionEvent e, int pointerCount,   int pointerId) { } public boolean onKeyDown(int keyCode, KeyEvent e) {  return true; } public boolean onKeyUp(int keyCode, KeyEvent e) {  return true; } public boolean onTouchDown(MotionEvent e) {  return true; } public boolean onTouchMove(MotionEvent e) {  return true; } public boolean onTouchUp(MotionEvent e) {  return true; } public void onUpClick() {  if (background != null) {   background.move_up(4);  } } public void onDownClick() {  if (background != null) {   background.move_down(4);  } } public void onLeftClick() {  if (background != null) {   background.move_left(4);  } } public void onRightClick() {  if (background != null) {   background.move_right(4);  } } public void onCancelClick() {  if (background != null) {   background.setVisible(false);  } } public void onCircleClick() {   } public void onSquareClick() { } public void onTriangleClick() {  if (background != null) {   background.setVisible(true);  } } public void unCancelClick() { } public void unCircleClick() { } public void unDownClick() { } public void unLeftClick() { } public void unRightClick() { } public void unSquareClick() { } public void unTriangleClick() { } public void unUpClick() { } 

用新增的模拟按键可以轻松实现格斗类或需要复杂操作的游戏:

00


框架基本使用方法请参见此文:http://blog.csdn.net/cping1982/archive/2010/08/06/5794380.aspx

以下为较早前发布过的一些程序示例画面(请下载较早前LGame发布版本获得):

以下为LGame-Simple开发的部分游戏示例画面。


源码及jar下载地址:http://loon-simple.googlecode.com/files/LGame-0.2.7.7z

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/aabbyyz/article/details/84038815
今日推荐