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();
        }
    
  • 相关阅读:
    什么是布局?Android中的布局是怎样的?
    如何优化UI布局?
    Android SDK提供的常用控件Widget “常用控件”“Android原生”
    Android中Adapter类的使用 “Adapter”
    Android自定义属性
    Android中View的绘制流程(专题讲解)
    Android的自定义View及View的绘制流程
    如何创建新控件? “复合控件”“定制控件”
    Android应用程序支持不同屏幕(尺寸、密度)
    支持不同Android设备,包括:不同尺寸屏幕、不同屏幕密度、不同系统设置
  • 原文地址:https://www.cnblogs.com/zhangweia/p/2145910.html
Copyright © 2011-2022 走看看