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