当前位置: 首页 > 工具软件 > hello-worlds > 使用案例 >

MarteEngine tutorial: Hello World

董畅
2023-12-01
Hello World是任何人必须开发以理解一门新语言或一个新平台的第一个程序:在这个教程里将解释如何使用MarteEngine写一个最简单的Hello World例子。

我们的Hello World例子像你展示如何在屏幕上写一个单独的字符串“Hello World”,它还解释了MarteEngine的一些核心概念。

Main class

在我们的例子中Main class是一个执行应用的类。想象一下在MarteEngine中的每个游戏都有许多个world:加载资源,标题屏幕,选项,介绍,游戏,暂停等等。

现在你需要一个中心类来初始化这些world病开始工作!
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

/**
 * Launch Hello World example
*
*/
public  class HelloWorldTest  extends StateBasedGame {

     public HelloWorldTest(String title) {
         super(title);
    }

    @Override
     public  void initStatesList(GameContainer container)  throws SlickException {
                 //  add HelloWorld to current game with id 1
        addState( new HelloWorld(1, container));
    }
    
     public  static  void main(String[] argv) {
         try {
            AppGameContainer container =  new AppGameContainer( new HelloWorldTest(
                    "Hello World Marte Engine"));
            container.setDisplayMode(800, 600,  false);
            container.setTargetFrameRate(60);
            container.start();
        }  catch (SlickException e) {
            e.printStackTrace();
        }
    }

}

你可能注意到游戏开始时Java调用的main方法和另外一个被覆写的方法:initStatesList。在这个特殊的方法里,MarteEngine将初始化游戏中所有的states/worlds。在我们这个简单的测试用例中只有一个state,即HelloWorld。

 

Hello World

 

package test;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.StateBasedGame;

import it.randomtower.engine.World;

public  class HelloWorld  extends World {

     public HelloWorld( int id, GameContainer container) {
         super(id, container);
    }
    
    @Override
     public  void render(GameContainer container, StateBasedGame stateBasedGame, Graphics g)
             throws SlickException {
         super.render(container,stateBasedGame,g);
        g.drawString("Hello World", 300, 200);
    }

}

 

 可以看到HelloWorld继承了World类(我们把游戏的World叫做States,因为从根本上来说World就是states)。还可以看到另外一个被覆写的方法:render。MarteEngine使用Render在屏幕上绘制物体,在我们的例子中,字符串Hello World位于x=300, y=200.

 

 运行Main class可以查看运行效果。

 

如果你对上面的代码有感觉了,可以继续Entity and World教程。


 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/cuizhf/archive/2012/03/03/2378146.html

 类似资料:

相关阅读

相关文章

相关问答