实现游戏开发中的屏幕滚动功能

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

J2ME游戏开发中使用层的概念中介绍了如何在游戏开发中使用层,其中提到LayerManager的一个概念,View Window,本文将借助这个概念实现屏幕滚动的功能。

屏幕的移动效果一般我们是通过改变View Window的的位置来实现的,比如你想屏幕向右移动,那么你要调整View Window的x坐标增加相应的数值,假如想屏幕向左移动,那么调整View Window的x坐标减少相应的数值。上下移动原理一样。我们在得到用户的输入后就可以对View Window的位置进行调整然后重新绘制屏幕。

PRivate void input()

{

int keyStates = getKeyStates();

if ((keyStates & LEFT_PRESSED) != 0)

{

if (scnX - 1 > 0)

scnX--;

}

if ((keyStates & RIGHT_PRESSED) != 0)

{

if (scnX + 1 + 140 < backgroundImage.getWidth())

scnX++;

}

}

// Method to Display Graphics

private void drawScreen(Graphics g)

{

g.setColor(0xffffff);

g.fillRect(0, 0, getWidth(), getHeight());

g.setColor(0x0000ff);

// display all layers

layerManager.setViewWindow(scnX, scnY, 140, 140);

layerManager.paint(g, 20, 20);

flushGraphics();

}

我们只使用一个背景图片如下:

由于程序比较简单,这里直接给出源代码不做过多的解释。

import javax.microedition.lcdui.*;

import javax.microedition.lcdui.game.*;

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 width; // To hold screen width

private int height; // To hold screen height

private int scnX, scnY; // To hold screen starting viewpoint

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航