StoryEdit 開発日誌

ウェブアプリ StoryEditを作ってましたが延期。普通のブログ。

slick2dでHello world

セットアップ

Javaに慣れてきたきがするので、そろそろゲームでも作ってみるか。ということに。

さーっと調べてみたところ,slick2dがいいらしい。
slick2d: http://www.slick2d.org/

というわけで、いろいろインストール。しかし動かない。

LWJGLがいるらしい。
LWJGL : http://lwjgl.org/


しかし以下のエラー。

Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException at sample.Sample.main(Sample.java:64)

うーん。なんでだ?と思い,Wikiを確認。なるほど,nativa libraryのパスをjarに指定するのか。しかし、設定しても同じエラー。なんでだ〜!!!と苦戦すること小一時間。orz

いろいろがんばって、結局、ワーキングディレクトリ以下ににシンボリックリンクを張ってそこに指定したら動いた。

hello, world!

EclipseからNew Classで,親クラスを指定すると、がんばっていろいろ補完してくれる。
いままでとくに何も考えずにjava.lang.object親のクラスで作ってたので、この機能を使わない手はないと思った。

以下,hello, world!

package mygame.sample;
import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;

public class Sample extends BasicGame {

	public Sample(String title) {
		super(title);
		// TODO Auto-generated constructor stub
		
	}

	@Override
	public void render(GameContainer container, Graphics g) throws SlickException {
		g.drawString("Hello World!",200,200);
	}

	@Override
	public void init(GameContainer container) throws SlickException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void update(GameContainer container, int arg1) throws SlickException {
		// TODO Auto-generated method stub

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Sample game = new Sample("mygame");
		AppGameContainer container;
		try {
			container = new AppGameContainer(game);
			container.start();
		} catch (SlickException e) {
			// ignore
		}
	}
}

んで、こんな感じ。FPSやばw

f:id:welovy:20130116191156p:plain


追記:
webglとかo3gとか触ってたから余裕余裕〜なんて思ってたら,なんとOpenGLはdrawStringで日本語表示できないのか。。。「ハローワールド!」としたら「!」しか表示されないよ。orz ブラウザの恩恵ってすごかったのですね。