Groovyでゲーム作成
...するほどの根性は持ち合わせていないけれど,息抜きでしんさん(id:shin)のゲームライブラリ:ShinGL3をGroovyで使ってみたよ。
なんだかよくわかんないけど,ホントにBASICっぽいんで,テキトウに組んだらお星様を動かせるくらいはできた。息子よ,おとうさんガンバッタヨ。:-D
とりあえず,組んだコード晒しておきます。こうですか?わかりません。><
import java.awt.* import java.awt.event.* import javax.imageio.* import shinsan.shingl3.ShinGL3OpenGL.AlphaMode as AlphaMode import static shinsan.shingl3.ShinGL3OpenGL.* import static shinsan.shingl3.ShinGL3Input.* import static shinsan.shingl3.ShinGL3SE.* import static shinsan.shingl3.ShinGL3BGM.* import static shinsan.shingl3.ShinGL3Math.* font = new Font("monoscaced", Font.BOLD, 32) init = { LOADTEXTURE("星", new File("star.png")) } as Runnable def x = 320 def y = 240 main = { if (INPUT(KeyEvent.VK_LEFT)) x = x < 1 ? 0 : x - 4 if (INPUT(KeyEvent.VK_RIGHT)) x = x > 575 ? 576 : x + 4 if (INPUT(KeyEvent.VK_UP)) y = y < 1 ? 0 : y - 4 if (INPUT(KeyEvent.VK_DOWN)) y = y > 415 ? 416 : y + 4 if (INPUT(KeyEvent.VK_ESCAPE)) EXIT 0 WIPE(Color.BLACK) PRINT(240, 400, font, Color.WHITE, "${GETFPS()} fps, ($x, $y)") PUTSPRITE("星", x, y, AlphaMode.NORMAL, 1.0f) } as Runnable SETSCREEN("サンプル", ImageIO.read(new File("icon.png")), 640, 480) START(init, main, 30)
できたのは,こんなの。カーソルキーで星が動く,ただそれだけ。でも楽しいゾ。
ゲームの開発言語にGroovyが適しているかどうかはアレだけど,ちょろっと試したわりには派手な結果が得られるからゲームは良いねぇ。前橋さん(id:kmaebashi)が昔言ってたけど,確かに"Hello, World"を表示するより,ショボくてもUFO打ち落とすゲーム書けた方が何倍もオモロイね。
ShinGL3でも,PRINT文使えば「├○┤」でUFO,「/┴\」で砲台な,30代以上が涙ちょちょ切れるようなのできそうだ。...って,すぐ出来た。:-D
#こうなると次は弾打ちてぇな,弾。
→ プログラミング言語を作る/Diksam on Windows