J2ME游戏开发中使用层的概念[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

public class ExampleGameCanvas extends GameCanvas implements Runnable
{
    private boolean isPlay; // Game Loop runs when isPlay is true
    private long delay; // To give thread consistency
    private int currentX, currentY; // To hold current position of the 'X'
    private int width; // To hold screen width
    private int height; // To hold screen height

    // Sprites to be used
    private Sprite playerSprite;
    private Sprite backgroundSprite;

    // Layer Manager
    private LayerManager layerManager;

    // Constructor and initialization
    public ExampleGameCanvas() throws Exception
    {
        super(true);
        width = getWidth();
        height = getHeight();

        currentX = width / 2;
        currentY = height / 2;
        delay = 20;

        // Load Images to Sprites
        Image playerImage = Image.createImage("/transparent.png");
        playerSprite = new Sprite(playerImage, 32, 32);
        System.out.println(playerSprite.getRawFrameCount());

        Image backgroundImage = Image.createImage("/background.png");
        backgroundSprite = new Sprite(backgroundImage);

        layerManager = new LayerManager();
        layerManager.append(playerSprite);
        layerManager.append(backgroundSprite);

    }

    // Automatically start thread for game loop
    public void start()
    {
        isPlay = true;
        Thread t = new Thread(this);
        t.start();
    }

    public void stop()
    {
        isPlay = false;
    }

    // Main Game Loop
    public void run()
    {
        Graphics g = getGraphics();
        while (isPlay == true)
        {

            input();
            drawScreen(g);
            try
            {
                Thread.sleep(delay);
            } catch (InterruptedException ie)
            {
            }
        }
    }

    // Method to Handle User Inputs
    private void input()
    {
        int keyStates = getKeyStates();

        playerSprite.setFrame(0);

        // Left
        if ((keyStates & LEFT_PRESSED) != 0)
        {
            currentX = Math.max(0, currentX - 1);
            playerSprite.setFrame(1);
        }

本文关键:J2ME游戏开发中使用层的概念
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top