|
游戏框架之心得体会(1)
最近研究的一段时间的游戏代码,获益不小!细节的掌握不多,但对游戏的框架有了一定的了解。 现总结出几套游戏框架,在此写出供大家参考! 文章仅代表个人观点,如有观点请在论坛讨论
MSN alfylove@hotmail.com
文章出自 J2MEDEV 转载请注名出处
合金代码 下载地址 http://www.j2medev.com/Soft/src/game/200610/789.html
Mid.java 开始启动线程 public class Mid extends MIDlet implements Runnable
public Mid() { mscreen = new Game(); Display.getDisplay(this).setCurrent(mscreen); }
public void run(){ if(mscreen.process()) this.notifyDestroyed(); } public void startApp() { (new Thread(this)).start(); } public void pauseApp() { mscreen.stayapp(); }
public void destroyApp(boolean unconditional) { mscreen.exitapp(); } }
//游戏主体部分 Game.java
public class Game extends Canvas {
public MScreen() { face_load();//地图数据 sound_load();//声音载入 screen_index = SCREEN_RESSLOAD; //这个索引为游戏主索引 } ///////////////////////////////// ///////技巧部分///////// /////////////////////////////// public final void refresh() { repaint(); serviceRepaints(); } //刷新屏幕 public final void stayapp() { running = false; } //退出循环 public final void exitapp() { exitapp = true; } //退出程序 //相对坐标的转换 private final int toScreenx(int x) { return x - position_x; } private final int toScreeny(int y) { return y - position_y; } //////////////////////////////////////////// ///////// //////////// //////// 描绘 //////////// //////////////////////////////////////////// protected void paint(Graphics g) { if(process_lock) return; //游戏关键进程锁 g.setClip(0,0,screen_w, screen_h); process_draw(); } protected void process_draw() { if(process_lock) return; switch(screen_index){ case SCREEN_MAINMENU: mainmenu_draw(); break; case SCREEN_HELPINFO: helpinfo_draw(); break; case SCREEN_COPYRIGH: copyrigh_draw(); break; case SCREEN_GAMEBODY: gamebody_draw(); break; case SCREEN_GAMEOVER: gameover_draw(); break; case SCREEN_HIGHLIST: highlist_draw(); break; case SCREEN_RESSLOAD: ressload_draw(); break; case SCREEN_SELEGATE: selegate_draw(); break; } }
上一篇:MIDP 1.0 HttpConnection类的robust封装
下一篇:如何控制游戏中的FPS
|