zoukankan      html  css  js  c++  java
  • J2ME游戏开发之GameCanvas构造类

     
    package com.slinw.gamecanvas;
    
    import javax.microedition.lcdui.Graphics;
    import javax.microedition.lcdui.game.GameCanvas;
    
    
    public abstract class RootGameCanvas extends GameCanvas implements Runnable{
    
            private Graphics g = null;
            private boolean isPlay; // Game Loop runs when isPlay is true
            private long delay; // To give thread consistency
         
            // Constructor and initialization
            public RootGameCanvas() {
                super(true);
                delay = 200;
                g = getGraphics();
            }
         
            // Automatically start thread for game loop
            public void start() {
                isPlay = true;
                new Thread(this).start();
            }
         
            public void stop() {
                isPlay = false;
            }
         
            // Main Game Loop
            public void run() {
                while (isPlay) {
                    keyEventInput();
                    drawScreen(g);
                    try {
                        Thread.sleep(delay);
                    } catch (InterruptedException ie) {}
                }
            }
         
            
            
            // Method to Handle User Inputs
            public void keyEventInput(){
                int key = getKeyStates();
                if((key & LEFT_PRESSED) != 0){
                    keyLeftPressedEvent();
                }
                
                if((key & RIGHT_PRESSED) != 0){
                    keyRightPressedEvent();
                }
                
                if((key & UP_PRESSED) != 0){
                    keyUpPressedEvent();
                }
                
                if((key & DOWN_PRESSED) != 0){
                    keyDownPressedEvent();
                }
            }
         
            
            // Method to Display Graphics
            public abstract void drawScreen(Graphics g);
            
            
            public abstract void keyLeftPressedEvent();
            
            public abstract void keyRightPressedEvent();
            
            public abstract void keyUpPressedEvent();
            
            public abstract void keyDownPressedEvent();
        }
    
  • 相关阅读:
    SQL基本之增删查改操作
    【转】C++静态库与动态库
    使用日志记录功能查看PHP扩展的执行过程
    写一个打印日志的函数
    写一个CGI程序并运行
    gcc及其选项详解 【转载】
    Linux下gcc编译生成动态链接库*.so文件并调用它【转载】
    Laravel框架开发规范-修订版
    Laravel框架开发规范-修订前期版
    基本语句优化10个原则
  • 原文地址:https://www.cnblogs.com/zhangweia/p/2145910.html
Copyright © 2011-2022 走看看