zoukankan      html  css  js  c++  java
  • 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教程。


    ——————————————————————————————————
    傲轩游戏网
  • 相关阅读:
    Codeforces Round #371 (Div. 1)
    Making the Grade(POJ3666)
    The trip(Uva 11100)
    Codeforces Round #370 (Div. 2) E. Memory and Casinos (数学&&概率&&线段树)
    [CodeForces
    勾股数组 学习笔记
    NOIP 2015 游记
    BestCoder Round #53 (div.1)
    北大信息学夏令营 游记
    Codeforces Round #313 (Div. 1)
  • 原文地址:https://www.cnblogs.com/cuizhf/p/2378146.html
Copyright © 2011-2022 走看看