MarteEngine tutorial: Hello World

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/p/2378146.html