前回と変えたのは、球を大きくしたので、一度に消えるブロックが増えたところです。さらに負荷が高まりましたが難易度としてはeasyになりました。
得点によって球の大きさを変えようとしたのですが、これも場合によってすり抜けてしまうので、やめました。
それから、このシリーズ全部に共通していますが、クリアの判定がややこしいことになっています。2000個目のブロックに当たった瞬間にクリアにするようにしたために、「スコアが1999でブロックに当たる」と「当たってスコアが2000になる」の二つの場合をつけなければなりませんでした。衝突のタイミングが判定のタイミングになるからです。
だから、スコアラベルのところENTER_FRAMEなので、ここでやればよかったんじゃないかと思うのですが、そのときはENTER_FRAMEの意味がよくわからなかったのかもしれません。
この頃、windowsからmacに変えたのですが、windowsで綺麗に字下げをして揃えて書いたつもりなのに、macで開くとぐちゃぐちゃになっていることがよくありました。
先生にきいたら教えてくださったのですが、Windowsでは全角と半角が混ざっていても気づかないので、ところどころ全角の半角が混ざっていたために、ずれてしまっていたのでした。それからは、全部半角スペースでやるようにしました。
あと、ここにソースコードを貼るときに、改行がどうしてもずれてしまいます。貼った後に修正するのですが、行が多いので面倒です。何かいい方法はないものかといろいろ試していますがまだ見つかりません。
// Main console.log("Hello EnchantJS!!"); var assets = [ "images/back_space.png", "images/kati_tanuki.png", "images/title.png",// タイトル "sounds/coin.mp3", "sounds/jump.mp3", "images/cf307/baayoko64.png", "images/xe_bullet_r.png", "images/gameover.png", "images/cf307/blueground.png", "sounds/cf307/decision1.mp3", "sounds/cf307/decision3.mp3", "sounds/cf307/rabohyuuu.mp3", "images/gameclear.png", "sounds/cf307/trumpet-dub1.mp3", "sounds/cf307/boyoyon1.mp3", "sounds/cf307/trumpet1.mp3", "sounds/cf307/dondonpafupafu1.mp3", "images/block_d.png", "images/cf307/block8p.png", "sounds/cf307/ME014-090610-loss02-wav.mp3", "sounds/cf307/hit04.mp3", "images/cf307/10_480.png", "images/bomb.png", "images/b_blue.png", ]; function gameStart(){// ゲーム画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume(); //========== // ここから //========== scene.backgroundColor = "darkgray"; // 背景 var sky = new ExSprite(320, 480); sky.image = core.assets["images/back_space.png"]; scene.addChild(sky); // 地面 var ground = new ExSprite(320, 55); ground.image = core.assets["images/cf307/blueground.png"]; ground.x = 0; ground.y = 480; scene.addChild(ground); // 壁左 var kabe = new ExSprite(10, 480); kabe.image = core.assets["images/cf307/10_480.png"]; kabe.x = -10; kabe.y = 0; scene.addChild(kabe); kabe.tag = "kabe"; // 壁右 var kabem = new ExSprite(10, 480); kabem.image = core.assets["images/cf307/10_480.png"]; kabem.x = 320; kabem.y = 0; scene.addChild(kabem); kabem.tag = "kabem"; // バー var bar = new ExSprite(64, 6); bar.image = core.assets["images/cf307/baayoko64.png"]; scene.addChild(bar); bar.x = 320 / 2 - 32; bar.y = 480 - 32; bar.tag = "bar"; //bar.scale(10, 1);// テスト用 // 玉グループ var tamaGroup = new Group(); scene.addChild(tamaGroup); // 玉 var tama = new ExSprite(9, 9); tama.image = core.assets["images/xe_bullet_r.png"]; //scene.addChild(tama); tama.x = bar.x + bar.width / 2 - tama.width / 2; tama.y = bar.y - tama.height; tamaGroup.addChild(tama); tama.originX = 0; tama.originY = 0; tama.scale(2, 2); // 最初の音 var sound0 = core.assets["sounds/cf307/decision3.mp3"].clone(); sound0.play(); // 玉の動き var x1 = getRandom(0, 320 - 5); //var x1 = getRandom(-320, 0);// テスト用 tama.tl.moveTo(x1, -9, 32, enchant.Easing.SINE_EASEOUT); // 最初に跳ね返る音 tama.tl.then(function(){ var sound1 = core.assets["sounds/cf307/decision1.mp3"].clone(); sound1.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480, 32, enchant.Easing.SINE_EASEOUT); // ブロックグループ var blockGroup = new Group(); scene.addChild(blockGroup); // スコア表示 var score = 0; scoreLabel = new Label('SCORE : 0'); scene.addChild(scoreLabel); scoreLabel.x = 10; scoreLabel.y = 10; scoreLabel.color = 'white'; scoreLabel.font = "24px 'PixelMplus10'"; scoreLabel.addEventListener(Event.ENTER_FRAME, function() { scoreLabel.text = 'SCORE : ' + score; }); // ブロック(繰り返し処理) var blocks = new Array(); for(var i=0; i< 2000; i++){ // ブロック var block = new ExSprite(8, 8); block.image = core.assets["images/cf307/block8p.png"]; block.x = 0 + ((i % 40) * 8); block.y = 0 + (Math.floor(i / 40) * 8); blockGroup.addChild(block); block.tag = "b";// タグをつけます blocks.push(block); //見よう見真似 } // 当たり判定をつけます for(var i=0; i<blocks.length; i++){ tama.addCollision(blocks[i]); } // 当たり判定 tama.addCollision(bar); //tama.addCollision(kabe); tama.addCollision(kabem); tama.addEventListener(Event.COLLISION, function(e) { // クリア if(2000 <= score){ tama.remove(); var label6 = new Label("?! アンビリーバボー!!!!"); label6.x = 60; label6.y = 480 / 2 - 32 / 2 + 48; label6.color = "white"; label6.font = "24px 'PixelMplus10'"; scene.addChild(label6); var sound100 = core.assets["sounds/cf307/rabohyuuu.mp3"].clone(); sound100.play(); var clear = new ExSprite(230, 32); clear.image = core.assets["images/gameclear.png"]; scene.addChild(clear); clear.x = 320 / 2 - clear.width / 2; clear.y = 480 / 2 - clear.height; clear.scale(0.5, 0.5); clear.tl.scaleTo(1.4, 1.4, 4); clear.tl.scaleTo(1.2, 1.2, 4); // 秘密のボタン clear.tl.then(function(){ var retry = new ExSprite(62, 55); retry.image = core.assets["images/b_blue.png"]; scene.addChild(retry); retry.x = 320 / 2 - retry.width / 2; retry.y = 300 ; retry.tl.moveBy(0, 50, 20); // ボタンをタッチ retry.addEventListener(Event.TOUCH_START, function(){ retry.frame = 1; console.log("タッチしました"); }); retry.addEventListener(Event.TOUCH_END, function(){ retry.frame = 0; gameStart1(); }); var label = new Label("!?"); label.color = 'red'; label.font = "25px 'PixelMplus10'"; //label.textAlign = "center"; label.x = 135; label.y = 360 + 55; scene.addChild(label); }); } // ブロックに当たったら if(e.collision.target.tag == "b"){ // クリア if(1999 <= score){ tama.remove(); var label6 = new Label("?! アンビリーバボー!!!!"); label6.x = 60; label6.y = 480 / 2 - 32 / 2 + 48; label6.color = "white"; label6.font = "24px 'PixelMplus10'"; scene.addChild(label6); var sound100 = core.assets["sounds/cf307/rabohyuuu.mp3"].clone(); sound100.play(); var clear = new ExSprite(230, 32); clear.image = core.assets["images/gameclear.png"]; scene.addChild(clear); clear.x = 320 / 2 - clear.width / 2; clear.y = 480 / 2 - clear.height; clear.scale(0.5, 0.5); clear.tl.scaleTo(1.4, 1.4, 4); clear.tl.scaleTo(1.2, 1.2, 4); // 秘密のボタン clear.tl.then(function(){ var retry = new ExSprite(62, 55); retry.image = core.assets["images/b_blue.png"]; scene.addChild(retry); retry.x = 320 / 2 - retry.width / 2; retry.y = 300 ; retry.tl.moveBy(0, 50, 20); // ボタンをタッチ retry.addEventListener(Event.TOUCH_START, function(){ retry.frame = 1; console.log("タッチしました"); }); retry.addEventListener(Event.TOUCH_END, function(){ retry.frame = 0; gameStart1(); }); var label = new Label("!?"); label.color = 'red'; label.font = "25px 'PixelMplus10'"; //label.textAlign = "center"; label.x = 135; label.y = 360 + 55; scene.addChild(label); }); } e.collision.target.tl.then(function() { e.collision.target.remove();// 消します var bomb = new ExSprite(32, 32); bomb.image = core.assets["images/bomb.png"]; bomb.x = e.collision.target.x; bomb.y = e.collision.target.y; scene.addChild(bomb); bomb.scale(0.5, 0.5); bomb.frame = [0, 1, 2, 3, 4, null]; //score += 2;// テスト用 score += 1; var sound = core.assets["sounds/cf307/hit04.mp3"].clone(); sound.play(); }); } // バーに当たったら if(e.collision.target.tag == "bar"){ tama.tl.clear(); // 玉の動きのパターン var p1 = getRandom(1, 3); // (1)最初に正面に当たる if(p1 == 1){ var x1 = getRandom(0, 320 - 9); tama.tl.moveTo(x1, -9, 32, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (1)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (1)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (1)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // (2)最初に左の壁に当たる if(p1 == 2){ var y1 = getRandom(200, 400); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x1 = getRandom(0, 320 - 9); tama.tl.moveTo(x1, -9, 20, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (2)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (2)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (2)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // (3)最初に右の壁に当たる if(p1 == 3){ var y1 = getRandom(200, 400); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x1 = getRandom(0, 320 - 5); tama.tl.moveTo(x1, -9, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (3)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (3)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (3)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // 音 var sound2 = core.assets["sounds/cf307/decision3.mp3"].clone(); sound2.play(); //tama.tl.moveTo(160, 471, 16); //テスト用 //score += 2000; //テスト用 } }); // 画面をタップしてバーを動かす scene.addEventListener(Event.TOUCH_START, function(e){ console.log("タッチ"); console.log(e.x); bar.tl.moveTo(e.x - 32, 480 - 32, 3, enchant.Easing.QUART_EASEINOUT); }); // ゲームオーバー ground.addCollision(tama); ground.addEventListener(Event.COLLISION, function(e) { tama.remove(); var over = new ExSprite(230, 32); over.image = core.assets["images/gameover.png"]; scene.addChild(over); over.x = 320 / 2 - over.width / 2; over.y = 480 / 2 - over.height + 16; over.scale(0.5, 0.5); over.tl.scaleTo(1, 1, 8); var sound = core.assets["sounds/cf307/ME014-090610-loss02-wav.mp3"].clone(); sound.play(); over.tl.then(function() { var label = new Label(" TAP TO RETRY"); label.color = 'red'; label.font = "28px 'PixelMplus10'"; label.textAlign = "center"; label.y = 220 + 100; scene.addChild(label); scene.addEventListener(Event.TOUCH_START, function() { gameStart(); }); }); }); //========== // ここまで //========== } function gameStart1(){// サービスゲーム画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume(); //========== // ここから //========== scene.backgroundColor = "darkgray"; // 背景 var sky = new ExSprite(320, 480); sky.image = core.assets["images/back_space.png"]; scene.addChild(sky); // 地面 var ground = new ExSprite(320, 55); ground.image = core.assets["images/cf307/blueground.png"]; ground.x = 0; ground.y = 480; scene.addChild(ground); // 壁左 var kabe = new ExSprite(10, 480); kabe.image = core.assets["images/cf307/10_480.png"]; kabe.x = -10; kabe.y = 0; scene.addChild(kabe); kabe.tag = "kabe"; // 壁右 var kabem = new ExSprite(10, 480); kabem.image = core.assets["images/cf307/10_480.png"]; kabem.x = 320; kabem.y = 0; scene.addChild(kabem); kabem.tag = "kabem"; // バー var bar = new ExSprite(64, 6); bar.image = core.assets["images/cf307/baayoko64.png"]; scene.addChild(bar); bar.x = 320 / 2 - 32; bar.y = 480 - 32; bar.tag = "bar"; bar.scale(10, 1);// テスト用 // 玉グループ var tamaGroup = new Group(); scene.addChild(tamaGroup); // 玉 var tama = new ExSprite(9, 9); tama.image = core.assets["images/xe_bullet_r.png"]; //scene.addChild(tama); tama.x = bar.x + bar.width / 2 - tama.width / 2; tama.y = bar.y - tama.height; tamaGroup.addChild(tama); tama.originX = 0; tama.originY = 0; tama.scale(2, 2); // 最初の音 var sound0 = core.assets["sounds/cf307/decision3.mp3"].clone(); sound0.play(); // 玉の動き var x1 = getRandom(0, 320 - 5); //var x1 = getRandom(-320, 0);// テスト用 tama.tl.moveTo(x1, -9, 32, enchant.Easing.SINE_EASEOUT); // 最初に跳ね返る音 tama.tl.then(function(){ var sound1 = core.assets["sounds/cf307/decision1.mp3"].clone(); sound1.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480, 32, enchant.Easing.SINE_EASEOUT); // ブロックグループ var blockGroup = new Group(); scene.addChild(blockGroup); // スコア表示 var score = 0; scoreLabel = new Label('SCORE : 0'); scene.addChild(scoreLabel); scoreLabel.x = 10; scoreLabel.y = 10; scoreLabel.color = 'white'; scoreLabel.font = "24px 'PixelMplus10'"; scoreLabel.addEventListener(Event.ENTER_FRAME, function() { scoreLabel.text = 'SCORE : ' + score; }); // ブロック(繰り返し処理) var blocks = new Array(); for(var i=0; i< 2000; i++){ // ブロック var block = new ExSprite(8, 8); block.image = core.assets["images/cf307/block8p.png"]; block.x = 0 + ((i % 40) * 8); block.y = 0 + (Math.floor(i / 40) * 8); blockGroup.addChild(block); block.tag = "b";// タグをつけます blocks.push(block); //見よう見真似 } // 当たり判定をつけます for(var i=0; i<blocks.length; i++){ tama.addCollision(blocks[i]); } // 当たり判定 tama.addCollision(bar); //tama.addCollision(kabe); tama.addCollision(kabem); tama.addEventListener(Event.COLLISION, function(e) { // クリア if(2000 <= score){ tama.remove(); var label6 = new Label("?! アンビリーバボー!!!!"); label6.x = 60; label6.y = 480 / 2 - 32 / 2 + 48; label6.color = "white"; label6.font = "24px 'PixelMplus10'"; scene.addChild(label6); var sound100 = core.assets["sounds/cf307/rabohyuuu.mp3"].clone(); sound100.play(); var clear = new ExSprite(230, 32); clear.image = core.assets["images/gameclear.png"]; scene.addChild(clear); clear.x = 320 / 2 - clear.width / 2; clear.y = 480 / 2 - clear.height; clear.scale(0.5, 0.5); clear.tl.scaleTo(1.4, 1.4, 4); clear.tl.scaleTo(1.2, 1.2, 4); var label = new Label(" TAP TO RETRY"); label.color = 'red'; label.font = "28px 'PixelMplus10'"; label.textAlign = "center"; label.y = 400; scene.addChild(label); scene.addEventListener(Event.TOUCH_START, function() { gameStart(); }); } // ブロックに当たったら if(e.collision.target.tag == "b"){ e.collision.target.tl.then(function() { e.collision.target.remove();// 消します var bomb = new ExSprite(32, 32); bomb.image = core.assets["images/bomb.png"]; bomb.x = e.collision.target.x; bomb.y = e.collision.target.y; scene.addChild(bomb); bomb.scale(0.5, 0.5); bomb.frame = [0, 1, 2, 3, 4, null]; //score += 2;// テスト用 score += 1; var sound = core.assets["sounds/cf307/hit04.mp3"].clone(); sound.play(); }); // クリア if(1999 <= score){ tama.remove(); var label6 = new Label("?! アンビリーバボー!!!!"); label6.x = 60; label6.y = 480 / 2 - 32 / 2 + 48; label6.color = "white"; label6.font = "24px 'PixelMplus10'"; scene.addChild(label6); var sound100 = core.assets["sounds/cf307/rabohyuuu.mp3"].clone(); sound100.play(); var clear = new ExSprite(230, 32); clear.image = core.assets["images/gameclear.png"]; scene.addChild(clear); clear.x = 320 / 2 - clear.width / 2; clear.y = 480 / 2 - clear.height; clear.scale(0.5, 0.5); clear.tl.scaleTo(1.4, 1.4, 4); clear.tl.scaleTo(1.2, 1.2, 4); var label = new Label(" TAP TO RETRY"); label.color = 'red'; label.font = "28px 'PixelMplus10'"; label.textAlign = "center"; label.y = 400; scene.addChild(label); scene.addEventListener(Event.TOUCH_START, function() { gameStart(); }); } } // バーに当たったら if(e.collision.target.tag == "bar"){ tama.tl.clear(); // 玉の動きのパターン var p1 = getRandom(1, 3); // (1)最初に正面に当たる if(p1 == 1){ var x1 = getRandom(0, 320 - 9); tama.tl.moveTo(x1, -9, 32, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (1)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (1)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (1)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // (2)最初に左の壁に当たる if(p1 == 2){ var y1 = getRandom(200, 400); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x1 = getRandom(0, 320 - 9); tama.tl.moveTo(x1, -9, 20, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (2)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (2)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (2)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // (3)最初に右の壁に当たる if(p1 == 3){ var y1 = getRandom(200, 400); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x1 = getRandom(0, 320 - 5); tama.tl.moveTo(x1, -9, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); // 正面に当たった後 var p2 = getRandom(1, 3); // (3)-1そのまま戻る if(p2 == 1){ var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (3)-2左の壁に当たってから戻る if(p2 == 2){ var y1 = getRandom(0, 200); tama.tl.moveTo(0, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } // (3)-3右の壁に当たってから戻る if(p2 == 3){ var y1 = getRandom(0, 200); tama.tl.moveTo(320 - 5, y1, 16, enchant.Easing.SINE_EASEOUT); tama.tl.then(function(){ var sound = core.assets["sounds/cf307/decision1.mp3"].clone(); sound.play(); }); var x2 = getRandom(0, 320 - 5); tama.tl.moveTo(x2, 480 - 5, 32, enchant.Easing.SINE_EASEOUT); } } // 音 var sound2 = core.assets["sounds/cf307/decision3.mp3"].clone(); sound2.play(); //tama.tl.moveTo(160, 471, 16); //テスト用 //score += 500; //テスト用 } }); // 画面をタップしてバーを動かす scene.addEventListener(Event.TOUCH_START, function(e){ console.log("タッチ"); console.log(e.x); bar.tl.moveTo(e.x - 32, 480 - 32, 3, enchant.Easing.QUART_EASEINOUT); }); // ゲームオーバー ground.addCollision(tama); ground.addEventListener(Event.COLLISION, function(e) { tama.remove(); var over = new ExSprite(230, 32); over.image = core.assets["images/gameover.png"]; scene.addChild(over); over.x = 320 / 2 - over.width / 2; over.y = 480 / 2 - over.height + 16; over.scale(0.5, 0.5); over.tl.scaleTo(1, 1, 8); var sound = core.assets["sounds/cf307/ME014-090610-loss02-wav.mp3"].clone(); sound.play(); over.tl.then(function() { var label = new Label(" TAP TO RETRY"); label.color = 'red'; label.font = "28px 'PixelMplus10'"; label.textAlign = "center"; label.y = 220 + 100; scene.addChild(label); scene.addEventListener(Event.TOUCH_START, function() { gameStart(); }); }); }); //========== // ここまで //========== } function getRandom(start, end) { return start + Math.floor( Math.random() * (end - start + 1)); } function titleStart(){// タイトル画面 var scene = gameManager.createTitleScene(); core.replaceScene(scene); core.pause(); scene.on(enchant.Event.TOUCH_START, function(){gameStart();}); } //========== // EnchantJS enchant(); var gameManager; var core; var scene; window.onload = function(){ gameManager = new common.GameManager(); core = gameManager.createCore(320, 480); core.preload(assets); core.onload = function(){titleStart();}; core.start(); }