WEB开发网
开发学院WEB开发Jsp 实现游戏中的图片滚屏功能 阅读

实现游戏中的图片滚屏功能

 2008-01-05 08:57:19 来源:WEB开发网   
核心提示: 实现游戏中的文字滚屏功能一文中讲述了如何实现文字滚屏功能,在本文中我们将实现图片滚动的功能,实现游戏中的图片滚屏功能,其实现的原理是相似的,只不过图片的相对复杂一些,这样我们没有使用双缓冲的可能了,因为只有通过指定width和height的空的图片才是可以修改的, 首先我们应该预备一个大小适当的图片,目的是实现让

   实现游戏中的文字滚屏功能一文中讲述了如何实现文字滚屏功能,在本文中我们将实现图片滚动的功能,其实现的原理是相似的,只不过图片的相对复杂一些。

   首先我们应该预备一个大小适当的图片,目的是实现让他从屏幕底部滚动到屏幕的中间。这样的情况比较简单,我们不需要考虑双缓冲的问题。有的时候我们需要自己绘画图片,可能算发挥比较复杂,这时候就需要考虑双缓冲问题,为了得到更好的效果,避免闪屏,我们应该在后台画图然后把它copy到当前屏幕的适当位置,因为copy的速度是比你直接在当前屏幕画的速度快的。在Canvas类中提供了一个函数isDoubleBuffered(),假如返回true的话,那么表示设备支持双缓冲,那么我们就没有必要自己实现这个技术了。假如返回false那么我们就应该使用双缓冲技术。你可以参考应用双缓冲技术解决画面闪烁的问题 。

  为了简单我们使用一个图片代替我们自己画的工作,这样我们没有使用双缓冲的可能了,因为只有通过指定width和height的空的图片才是可以修改的。像从jar文件中读取、从子节数组中创建的图片都是不可修改的。
实现游戏中的图片滚屏功能

下面是源代码
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class GuessNumber extends MIDlet
{
   PRivate Display display;
   private WelcomeCanvas welcomeCanvas;
   private Form mainForm;


   protected void startApp() throws MIDletStateChangeException
   {
  
     initMIDlet();

   }
  
   private void initMIDlet()
   {
     display = Display.getDisplay(this);
     mainForm = new Form("Guess Number");
     mainForm.append("this is a game");
     welcomeCanvas = new WelcomeCanvas(display,mainForm);
     display.setCurrent(welcomeCanvas);
   }

 
   protected void pauseApp()
   {
    
   }

 
   protected void destroyApp(boolean arg0) throws MIDletStateChangeException
   {
    
   }

}

public class WelcomeCanvas extends Canvas
{

   private Display display;
   private Displayable next;
   private Timer timer = new Timer();
   private int width = getWidth();
   private int height = getHeight();
   private int i = height;
   private int left;
   private int incHeight;
   private Image image;
   private boolean going = true;


Tags:实现 游戏 图片

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接