enchant.js @ #ojagnaha1015
ハッカソンはとても楽しかったです。ぼさっとしつつひたすらもくもく、というのはなかなかでした。確かに時間的には、あっという間に終わってしまったカンジだったので、一日かける程度の時間確保が必要なのか、作るスピードの問題なのかどうか。
とりあえず
昨日の成果を恥を承知の上で以下に。
最後の発表では遠慮させて頂いたのですが、なんとなく Scheme っぽいというか javascript 風味なソレを意識してるのかどうか的ソースだったりしてます。main.js のみです。
enchant(); window.onload = function() { game = new Game(320, 320); game.fps = 24; game.preload(['chara1.gif','icon0.gif','bg.png']); game.onload = function() { var ball = new Sprite(16, 16); ball.x = 100; ball.y = 320; ball.width = 16; ball.height = 16; ball.image = game.assets['icon0.gif']; ball.frame = 45; game.rootScene.addChild(ball); var bar = new Sprite(16, 16); bar.x = 100; bar.y = 280; bar.width = 16; bar.height = 16; bar.image = game.assets['icon0.gif']; bar.frame = 50; game.rootScene.addChild(bar); game.rootScene.addEventListener('touchstart', function(e){ bar.x = e.localX }); game.rootScene.addEventListener('touchmove', function(e){ bar.x = e.localX }); bar.addEventListener('enterframe', function(e) { if(this.intersect(ball)) { if(game.frameCount % 3 == 0) { if (xadd <= 0) { xadd = -4; } else { xadd = 4; } } else { if (xadd <= 0) { xadd = -3; } else { xadd = 3; } } yadd *= -1; } }); var xadd = 3; var yadd = -2; game.rootScene.addEventListener('enterframe',function(){ if (ball.x <= 0) xadd *= -1; if (ball.x >= 304) xadd *= -1; if (ball.y <= 0) yadd = 2; if (ball.y >= 304) yadd = -2; ball.x += xadd; ball.y += yadd; }); var array = new Array(3); for(var i = 0; i < 3; i++) { array[i] = new Array(20); for(var j = 0; j < 20; j++){ array[i][j] = new Sprite(16, 16); array[i][j].x = 16 * j; array[i][j].y = 100 - 16 * i; array[i][j].width = 16; array[i][j].height = 16; array[i][j].image = game.assets['icon0.gif']; array[i][j].frame = 16 + i; array[i][j].addEventListener('enterframe', function(e) { if(ball.within(this, 20)){ game.rootScene.removeChild(this); yadd *= -1; } }); game.rootScene.addChild(array[i][j]); } } game.frameCount = 0; // 経過したフレーム数を数えるための変数 } game.start(); // プリロードをスタート }
まだこの時点で全然ブロック崩しになっておらんですな。