66
// Main console.log("Hello EnchantJS!!"); var assets = [ "images/title.png",// タイトル "images/cf307/snakeheadene.png", "images/cf307/hebitama.png", "images/mole_hole_1_a.png", "images/back_desert.png", "images/tg_egg.png", "sounds/cf307/incorrect1.mp3", "sounds/cf307/stupid4.mp3", "sounds/cf307/decision21.mp3", "sounds/cf307/bgm_tamago.mp3", "sounds/cf307/bgm_chouchou.mp3", "images/title_gameclear.png", "images/title_gameover.png", "images/cf307/retrybotan.png", "images/cf307/taitorubotan.png", "images/b_red.png", "images/b_blue.png", ]; function demo(){// お手本画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume(); //========== // ここから //========== //core.fps = 50;// テスト用 var soundbgm = core.assets["sounds/cf307/bgm_chouchou.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } }); scene.tl.delay(16 * 53).then(function(){ var soundbgm = core.assets["sounds/cf307/bgm_chouchou.mp3"].clone();

MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

// Main console.log("Hello EnchantJS!!");

var assets = [ "images/title.png",// タイトル "images/cf307/snakeheadene.png", "images/cf307/hebitama.png", "images/mole_hole_1_a.png", "images/back_desert.png", "images/tg_egg.png", "sounds/cf307/incorrect1.mp3", "sounds/cf307/stupid4.mp3", "sounds/cf307/decision21.mp3", "sounds/cf307/bgm_tamago.mp3", "sounds/cf307/bgm_chouchou.mp3", "images/title_gameclear.png", "images/title_gameover.png", "images/cf307/retrybotan.png", "images/cf307/taitorubotan.png", "images/b_red.png", "images/b_blue.png", ];

function demo(){// お手本画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume(); //========== // ここから //==========

//core.fps = 50;// テスト用

var soundbgm = core.assets["sounds/cf307/bgm_chouchou.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } });

scene.tl.delay(16 * 53).then(function(){ var soundbgm = core.assets["sounds/cf307/bgm_chouchou.mp3"].clone();

Page 2: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } }); }); scene.tl.delay(16 * 53).then(function(){ var soundbgm = core.assets["sounds/cf307/bgm_chouchou.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } }); });

var background = new ExSprite(320, 480); background.image = core.assets["images/back_desert.png"]; scene.addChild(background);

var kabes = new Array(); function makeKabe(w, h, x, y) { var kabe = new ExSprite(w, h); kabe.backgroundColor = "red"; kabe.x = x; kabe.y = y; scene.addChild(kabe); kabes.push(kabe); } makeKabe(1, 480 - 64, 320 - 32, 64); makeKabe(320 - 32 * 2, 1, 32, 64); makeKabe(1, 480 - 32 * 3, 32, 64); makeKabe(320 - 32 * 3, 1, 32, 480 - 32); makeKabe(1, 32 * 5, 320 - 32 * 2, 32 * 9); // 5 makeKabe(32 * 5, 1, 32 * 3, 32 * 9); // 6 makeKabe(1, 32 * 2, 32 * 3, 32 * 9); // 7 makeKabe(1, 32 * 2, 32 * 7, 32 * 10); // 8 makeKabe(32 * 3, 1, 32 * 4, 32 * 10); // 9 makeKabe(1, 32 * 3, 32 * 4, 32 * 10); // 10 //makeKabe(32, 1, 32 * 5, 32 * 11); // 11 makeKabe(1, 32 * 2, 32 * 6, 32 * 12); // 12 makeKabe(32 * 2, 1, 32 * 2, 32 * 13); // 13

Page 3: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

makeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4); // 17 makeKabe(1, 32 * 2, 32 * 7, 32 * 2); // 18 makeKabe(1, 32 * 3, 32 * 8, 32 * 4); // 19 makeKabe(32 * 6, 1, 32 * 2, 32 * 5); // 20 makeKabe(1, 32, 32 * 6, 32 * 5); // 21 makeKabe(1, 32, 32 * 4, 32 * 6); // 22 //makeKabe(1, 32, 32 * 3, 32 * 6); // 23 makeKabe(32 * 3, 1, 32 * 3, 32 * 7); // 24 makeKabe(32 * 7, 1, 32 * 2, 32 * 8); // 25 //makeKabe(1, 32, 32 * 7, 32 * 7); // 26 makeKabe(1, 32, 32 * 6, 32 * 7); // 27

var hole = new ExSprite(82, 28); hole.image = core.assets["images/mole_hole_1_a.png"]; hole.x = scene.width / 2 - hole.width / 2; hole.y = scene.height / 2 - hole.height / 2; scene.addChild(hole); hole.scale(0.5, 0.5);

var egg = new ExSprite(32, 32); egg.image = core.assets["images/tg_egg.png"]; egg.x = scene.width / 2 - egg.width / 2 + 5; egg.y = scene.height / 2 - egg.height / 2 - 10; scene.addChild(egg); egg.rotate(30);

// 判定用エッグ var egg1 = new ExSprite(16, 16); //egg1.backgroundColor = "red"; egg1.x = egg.x + 8; egg1.y = egg.y + 8; scene.addChild(egg1); egg1.tag = "たまご";

var moziGroup = new Group; scene.addChild(moziGroup);

var snakeGroup = new Group; scene.addChild(snakeGroup);

Page 4: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

// 頭を表示 var head = new ExSprite(16, 16); head.image = core.assets["images/cf307/snakeheadene.png"]; //head.backgroundColor = "red"; head.x = 320 - 16 - 8; head.y = 480 - 16 * 5; snakeGroup.addChild(head);

var body1 = new ExSprite(16, 16); body1.backgroundColor = "green"; body1.x = head.x + head.width / 2 - body1.width / 2; body1.y = head.y + 16; snakeGroup.addChild(body1); var body2 = new ExSprite(16, 16); body2.backgroundColor = "green"; body2.x = head.x + head.width / 2 - body2.width / 2; body2.y = head.y + 16 * 2; snakeGroup.addChild(body2); var body3 = new ExSprite(16, 16); body3.backgroundColor = "green"; body3.x = head.x + head.width / 2 - body3.width / 2; body3.y = head.y + 16 * 3; snakeGroup.addChild(body3); var body4 = new ExSprite(16, 16); body4.backgroundColor = "green"; body4.x = head.x + head.width / 2 - body4.width / 2; body4.y = head.y + 16 * 4; snakeGroup.addChild(body4); var body5 = new ExSprite(16, 16); body5.backgroundColor = "green"; body5.x = head.x + head.width / 2 - body5.width / 2; body5.y = head.y + 16 * 5; snakeGroup.addChild(body5);

// へびのうんちを作る関数 function makeMozi(f) { var mozi = new ExSprite(9, 9); mozi.image = core.assets["images/cf307/hebitama.png"]; mozi.x = body5.x + 8 - 4.5;

Page 5: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

mozi.y = body5.y + 8 - 4.5; moziGroup.addChild(mozi); mozi.frame = f; }

snakeGroup.tl.delay(8).then(function(){ makeMozi(0); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(1); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(2); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(3); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(4); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(5); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(6); }); snakeGroup.tl.loop();

// うんちがかべに当たったらゲームオーバー for(var i=0; i<kabes.length; i++){ kabes[i].addCollision(moziGroup); kabes[i].addEventListener(Event.COLLISION, function(e){ //[i]があるからこれもforの中に入れる var sound = core.assets["sounds/cf307/incorrect1.mp3"].clone(); sound.play(); var over = new ExSprite(147, 48); over.image = core.assets["images/title_gameover.png"]; over.x = scene.width / 2 - over.width / 2; over.y = 132; over.scale(0.5, 0.5); scene.addChild(over); over.tl.scaleTo(1, 1, 10); over.tl.then(function(){

Page 6: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

var sound = core.assets["sounds/cf307/stupid4.mp3"].clone(); sound.play(); core.stop(); }); }); } // 最初の動き(上向き) head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); // 最初の方向(上向き) var houkou = 1; console.log(houkou); body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop();

var bar = new ExSprite(320, 1); //bar.backgroundColor = "red"; bar.y = 0; scene.addChild(bar); bar.tag = "上のバー";

var barmigi = new ExSprite(1, 480); //barmigi.backgroundColor = "red"; barmigi.x = 319; scene.addChild(barmigi); barmigi.tag = "右のバー";

var barhidari = new ExSprite(1, 480);

Page 7: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

//barhidari.backgroundColor = "red"; barhidari.x = 0; scene.addChild(barhidari); barhidari.tag = "左のバー";

var barsita = new ExSprite(320, 1); //barsita.backgroundColor = "red"; barsita.y = 479; scene.addChild(barsita); barsita.tag = "下のバー";

var counter = 0;

// バーに当たったら・卵に着いたら head.addCollision(bar); head.addCollision(barmigi); head.addCollision(barhidari); head.addCollision(barsita); head.addCollision(egg1); head.addEventListener(Event.COLLISION, function(e) { // 卵に到達したらゲームクリア if(e.collision.target.tag == "たまご"){ var gameclear = new ExSprite(147, 48); gameclear.image = core.assets["images/title_gameclear.png"]; gameclear.x = scene.width / 2 - gameclear.width / 2; gameclear.y = 132; scene.addChild(gameclear); var sound = core.assets["sounds/cf307/decision21.mp3"].clone(); sound.play(); head.tl.clear(); body1.tl.clear(); body2.tl.clear(); body3.tl.clear(); body4.tl.clear(); body5.tl.clear(); } // bodyが全部移動し終わるまでタッチ不可にしたい //scene.touchEnabled = false; // できねえ・・のでカウンターを使ってみる counter = 1; scene.tl.delay(40).then(function(){ counter = 0; }); if(e.collision.target.tag == "上のバー"){  

Page 8: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

console.log("ぶつかったよ"); console.log(head.y); head.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ head.x = 2; } if(e.collision.target.tag == "左のバー"){ head.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ head.y = 2; } }); body1.addCollision(bar); body1.addCollision(barmigi); body1.addCollision(barhidari); body1.addCollision(barsita); body1.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body1.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body1.x = 2; } if(e.collision.target.tag == "左のバー"){ body1.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body1.y = 2; } }); body2.addCollision(bar); body2.addCollision(barmigi); body2.addCollision(barhidari); body2.addCollision(barsita); body2.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body2.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body2.x = 2; }

Page 9: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

if(e.collision.target.tag == "左のバー"){ body2.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body2.y = 2; } }); body3.addCollision(bar); body3.addCollision(barmigi); body3.addCollision(barhidari); body3.addCollision(barsita); body3.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body3.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body3.x = 2; } if(e.collision.target.tag == "左のバー"){ body3.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body3.y = 2; } }); body4.addCollision(bar); body4.addCollision(barmigi); body4.addCollision(barhidari); body4.addCollision(barsita); body4.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body4.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body4.x = 2; } if(e.collision.target.tag == "左のバー"){ body4.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body4.y = 2; } });

Page 10: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.addCollision(bar); body5.addCollision(barmigi); body5.addCollision(barhidari); body5.addCollision(barsita); body5.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body5.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body5.x = 2; } if(e.collision.target.tag == "左のバー"){ body5.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body5.y = 2; } });

// 上向きから左に曲がる動き function upLeft(){ console.log("上から左"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(-90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear();

Page 11: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8); body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8); body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); }

// 左向きから下に曲がる動き function leftDown(){ console.log(" 右から下"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8); head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする

Page 12: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正

Page 13: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8); body5.tl.loop(); }); } // 下向きから右に曲がる動き function downRight(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop();

Page 14: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8); body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); } // 右向きから上に曲がる動き function rightUp(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正

Page 15: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); }); }

// 上向きから右に曲がる動き function upRight(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定

Page 16: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8); body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); }

Page 17: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

// 右向きから下に曲がる動き function rightDown(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8); head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので

Page 18: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8); body5.tl.loop(); }); }

// 下向きから左に曲がる動き function downLeft(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(270, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8);

Page 19: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8); body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); }

// 左向きから上に曲がる動き function leftUp(){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear();

Page 20: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); });

Page 21: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

} // 場所で判定してオートマチックに移動 scene.addEventListener(Event.ENTER_FRAME, function() { if(head.y == 32 + 8 && head.x == 320 - 16 - 8){ upLeft(); } if(head.y == 32 + 8 && head.x == 8){ leftDown(); } if(head.y == 32 * 14 + 8 && head.x == 8){ downRight(); } if(head.y == 32 * 14 + 8 && head.x == 32 * 8 + 8){ rightUp(); } if(head.y <= 32 * 8 + 8 && head.y > 32 * 8 && head.x == 32 * 8 + 8){ upLeft(); } if(head.y <= 32 * 8 + 8 && head.y > 32 * 8 && head.x <= 32 * 2 + 8 && head.x > 32 * 2){ leftDown(); } if(head.x <= 32 * 2 + 8 && head.x > 32 * 2 && head.y == 32 * 12 + 8){ downRight(); } if(head.y == 32 * 12 + 8 && head.x == 32 * 3 + 6){ rightUp(); } if(head.y == 32 * 9 + 6 && head.x == 32 * 3 + 6){ upRight(); } if(head.y == 32 * 9 + 6 && head.x == 32 * 7 + 8){ rightDown(); } if(head.y == 32 * 13 + 8 && head.x == 32 * 7 + 8){ downLeft(); } if(head.y == 32 * 13 + 8 && head.x == 32 * 6 + 10){ leftUp(); } if(head.y == 32 * 10 + 6 && head.x == 32 * 6 + 10){ upLeft();

Page 22: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

} if(head.y == 32 * 10 + 6 && head.x == 32 * 4 + 8){ leftDown(); } if(head.y == 32 * 11 + 8 && head.x == 32 * 4 + 8){ downRight(); } if(head.y == 32 * 11 + 8 && head.x == 32 * 5 + 6){ rightDown(); } if(head.y == 32 * 13 + 8 && head.x == 32 * 5 + 6){ downLeft(); // 18 } if(head.y == 32 * 13 + 8 && head.x == 32 * 1 + 8){ leftUp(); } if(head.y == 32 * 2 + 8 && head.x == 32 * 1 + 8){ upRight(); } if(head.y == 32 * 2 + 8 && head.x == 32 * 6 + 8){ rightDown(); } if(head.y == 32 * 3 + 6 && head.x == 32 * 6 + 8){ downLeft(); } if(head.y == 32 * 3 + 6 && head.x == 32 * 2 + 8){ leftDown(); } if(head.y == 32 * 4 + 8 && head.x == 32 * 2 + 8){ downRight(); } if(head.y == 32 * 4 + 8 && head.x == 32 * 7 + 10){ leftUp(); } if(head.y == 32 * 2 + 8 && head.x == 32 * 7 + 10){ upRight(); } if(head.y == 32 * 2 + 8 && head.x == 32 * 8 + 8){ rightDown(); } if(head.y == 32 * 7 + 8 && head.x == 32 * 8 + 8){ downLeft(); }

Page 23: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

if(head.y == 32 * 7 + 8 && head.x == 32 * 6 + 8){ leftUp(); } if(head.y == 32 * 6 + 6 && head.x == 32 * 6 + 8){ upLeft(); } if(head.y == 32 * 6 + 6 && head.x == 32 * 4 + 8){ leftUp(); } if(head.y == 32 * 5 + 8 && head.x == 32 * 4 + 8){ upLeft(); } if(head.y == 32 * 5 + 8 && head.x == 32 * 2 + 8){ leftDown(); } if(head.y == 32 * 7 + 8 && head.x == 32 * 2 + 8){ downRight(); } });

var label = new Label("卵タップで終了→ゲームスタート"); label.color = 'red'; label.font = "18px 'PixelMplus10'";// 28 //label.textAlign = "center"; label.x = 68; label.y = 220 + 40; scene.addChild(label); egg1.addEventListener(Event.TOUCH_START, function() { soundbgm.stop(); gameStart(); });

//========== // ここまで //========== }

function gameStart(){// ゲーム画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume();

//========== // ここから

Page 24: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

//==========

var soundbgm = core.assets["sounds/cf307/bgm_tamago.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } });

scene.tl.delay(16 * 55).then(function(){ var soundbgm = core.assets["sounds/cf307/bgm_tamago.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } }); }); scene.tl.delay(16 * 55).then(function(){ var soundbgm = core.assets["sounds/cf307/bgm_tamago.mp3"].clone(); soundbgm.play(); scene.addEventListener(Event.ENTER_FRAME, function() { if(counter == 1){ soundbgm.stop(); } }); });

var background = new ExSprite(320, 480); background.image = core.assets["images/back_desert.png"]; scene.addChild(background);     var kabes = new Array(); function makeKabe(w, h, x, y) { var kabe = new ExSprite(w, h); kabe.backgroundColor = "red"; kabe.x = x; kabe.y = y; scene.addChild(kabe); kabes.push(kabe); } makeKabe(1, 480 - 64, 320 - 32, 64);

Page 25: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

makeKabe(320 - 32 * 2, 1, 32, 64); makeKabe(1, 480 - 32 * 3, 32, 64); makeKabe(320 - 32 * 3, 1, 32, 480 - 32); makeKabe(1, 32 * 5, 320 - 32 * 2, 32 * 9); // 5 makeKabe(32 * 5, 1, 32 * 3, 32 * 9); // 6 makeKabe(1, 32 * 2, 32 * 3, 32 * 9); // 7 makeKabe(1, 32 * 2, 32 * 7, 32 * 10); // 8 makeKabe(32 * 3, 1, 32 * 4, 32 * 10); // 9 makeKabe(1, 32 * 3, 32 * 4, 32 * 10); // 10 //makeKabe(32, 1, 32 * 5, 32 * 11); // 11 makeKabe(1, 32 * 2, 32 * 6, 32 * 12); // 12 makeKabe(32 * 2, 1, 32 * 2, 32 * 13); // 13 makeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4); // 17 makeKabe(1, 32 * 2, 32 * 7, 32 * 2); // 18 makeKabe(1, 32 * 3, 32 * 8, 32 * 4); // 19 makeKabe(32 * 6, 1, 32 * 2, 32 * 5); // 20 makeKabe(1, 32, 32 * 6, 32 * 5); // 21 makeKabe(1, 32, 32 * 4, 32 * 6); // 22 //makeKabe(1, 32, 32 * 3, 32 * 6); // 23 makeKabe(32 * 3, 1, 32 * 3, 32 * 7); // 24 makeKabe(32 * 7, 1, 32 * 2, 32 * 8); // 25 //makeKabe(1, 32, 32 * 7, 32 * 7); // 26 makeKabe(1, 32, 32 * 6, 32 * 7); // 27

var label = new Label(" 頭や玉がかべに当たるとアウトだよ"); label.color = 'blue'; label.font = "18px 'PixelMplus10'";// 28 label.textAlign = "center"; label.y = 480 - 30; scene.addChild(label); label.tl.delay(16 * 5).then(function(){ label.remove(); });

var hole = new ExSprite(82, 28); hole.image = core.assets["images/mole_hole_1_a.png"]; hole.x = scene.width / 2 - hole.width / 2; hole.y = scene.height / 2 - hole.height / 2; scene.addChild(hole); hole.scale(0.5, 0.5);

Page 26: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

var egg = new ExSprite(32, 32); egg.image = core.assets["images/tg_egg.png"]; egg.x = scene.width / 2 - egg.width / 2 + 5; egg.y = scene.height / 2 - egg.height / 2 - 10; scene.addChild(egg); egg.rotate(30);

// 判定用エッグ var egg1 = new ExSprite(16, 16); //egg1.backgroundColor = "red"; egg1.x = egg.x + 8; egg1.y = egg.y + 8; scene.addChild(egg1); egg1.tag = "たまご";

var moziGroup = new Group; scene.addChild(moziGroup);

var snakeGroup = new Group; scene.addChild(snakeGroup);

// 頭を表示 var head = new ExSprite(16, 16); head.image = core.assets["images/cf307/snakeheadene.png"]; //head.backgroundColor = "red"; head.x = 320 - 16 - 8; head.y = 480 - 16 * 5; snakeGroup.addChild(head);

var body1 = new ExSprite(16, 16); body1.backgroundColor = "green"; body1.x = head.x + head.width / 2 - body1.width / 2; body1.y = head.y + 16; snakeGroup.addChild(body1); var body2 = new ExSprite(16, 16); body2.backgroundColor = "green"; body2.x = head.x + head.width / 2 - body2.width / 2; body2.y = head.y + 16 * 2; snakeGroup.addChild(body2); var body3 = new ExSprite(16, 16);

Page 27: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.backgroundColor = "green"; body3.x = head.x + head.width / 2 - body3.width / 2; body3.y = head.y + 16 * 3; snakeGroup.addChild(body3); var body4 = new ExSprite(16, 16); body4.backgroundColor = "green"; body4.x = head.x + head.width / 2 - body4.width / 2; body4.y = head.y + 16 * 4; snakeGroup.addChild(body4); var body5 = new ExSprite(16, 16); body5.backgroundColor = "green"; body5.x = head.x + head.width / 2 - body5.width / 2; body5.y = head.y + 16 * 5; snakeGroup.addChild(body5);

// へびのうんちを作る関数 function makeMozi(f) { var mozi = new ExSprite(9, 9); mozi.image = core.assets["images/cf307/hebitama.png"]; mozi.x = body5.x + 8 - 4.5; mozi.y = body5.y + 8 - 4.5; moziGroup.addChild(mozi); mozi.frame = f; }

snakeGroup.tl.delay(8).then(function(){ makeMozi(0); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(1); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(2); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(3); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(4); }); snakeGroup.tl.delay(8).then(function(){

Page 28: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

makeMozi(5); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(6); }); snakeGroup.tl.loop();

// うんちがかべに当たったらゲームオーバー for(var i=0; i<kabes.length; i++){ kabes[i].addCollision(moziGroup); kabes[i].addEventListener(Event.COLLISION, function(e){ //[i]があるからこれもforの中に入れる // 操作不能にするためのカウンター(そのままではゴールできてしまう) counter = 1; var sound = core.assets["sounds/cf307/incorrect1.mp3"].clone(); sound.play(); var over = new ExSprite(147, 48); over.image = core.assets["images/title_gameover.png"]; over.x = scene.width / 2 - over.width / 2; over.y = 132; over.scale(0.5, 0.5); scene.addChild(over); over.tl.scaleTo(1, 1, 10); over.tl.then(function(){ var sound = core.assets["sounds/cf307/stupid4.mp3"].clone(); sound.play(); // リプレイボタン1 var botan = new ExSprite(62, 55); botan.image = core.assets["images/cf307/retrybotan.png"]; scene.addChild(botan); botan.x = 320 / 2 - botan.width / 2 - 80; botan.y = 400 - 10 + 50; botan.tl.moveBy(0, -50, 10); // ボタンをタッチ botan.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; gameStart(); }); //core.stop(); head.tl.clear();

Page 29: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body1.tl.clear(); body2.tl.clear(); body3.tl.clear(); body4.tl.clear(); body5.tl.clear(); // タイトルボタン var botan1 = new ExSprite(62, 55); botan1.image = core.assets["images/cf307/taitorubotan.png"]; scene.addChild(botan1); botan1.x = 320 / 2 - botan1.width / 2 + 80; botan1.y = 400 - 10 + 50; botan1.tl.moveBy(0, -50, 10); // ボタンをタッチ    botan1.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan1.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; title(); }); }); }); } // 最初の動き(上向き) head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); // 最初の方向(上向き) var houkou = 1; console.log(houkou); body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop();

Page 30: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop();

var bar = new ExSprite(320, 1); bar.backgroundColor = "red"; bar.y = 0; scene.addChild(bar); bar.tag = "上のバー";

var barmigi = new ExSprite(1, 480); barmigi.backgroundColor = "red"; barmigi.x = 319; scene.addChild(barmigi); barmigi.tag = "右のバー";

var barhidari = new ExSprite(1, 480); barhidari.backgroundColor = "red"; barhidari.x = 0; scene.addChild(barhidari); barhidari.tag = "左のバー";

var barsita = new ExSprite(320, 1); barsita.backgroundColor = "red"; barsita.y = 479; scene.addChild(barsita); barsita.tag = "下のバー";

var counter = 0;

// バーに当たったら・卵に着いたら head.addCollision(bar); head.addCollision(barmigi); head.addCollision(barhidari); head.addCollision(barsita); head.addCollision(egg1); for(var i=0; i<kabes.length; i++){ // kabesの衝突判定 head.addCollision(kabes[i]); } head.addEventListener(Event.COLLISION, function(e) { head.tl.clear(); //ここに入れる必要あり body1.tl.clear(); body2.tl.clear();

Page 31: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.tl.clear(); body4.tl.clear(); body5.tl.clear(); // 操作不能にしたい(そのままではゴールできてしまう) counter = 1; // 卵に到達したらゲームクリア if(e.collision.target.tag == "たまご"){ var gameclear = new ExSprite(147, 48); gameclear.image = core.assets["images/title_gameclear.png"]; gameclear.x = scene.width / 2 - gameclear.width / 2; gameclear.y = 132; scene.addChild(gameclear); var sound = core.assets["sounds/cf307/decision21.mp3"].clone(); sound.play(); //core.stop(); // タイトルボタン var botan = new ExSprite(62, 55); botan.image = core.assets["images/cf307/taitorubotan.png"]; scene.addChild(botan); botan.x = 320 / 2 - botan.width / 2; botan.y = 530 - botan.height; botan.tl.moveBy(0, -50, 10); // ボタンをタッチ botan.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; title(); }); // それ以外はゲームオーバー }else{ var sound = core.assets["sounds/cf307/incorrect1.mp3"].clone(); sound.play(); var over = new ExSprite(147, 48); over.image = core.assets["images/title_gameover.png"]; over.x = scene.width / 2 - over.width / 2; over.y = 132; over.scale(0.5, 0.5); scene.addChild(over); over.tl.scaleTo(1, 1, 10); over.tl.then(function(){ var sound = core.assets["sounds/cf307/stupid4.mp3"].clone();

Page 32: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

sound.play(); // リプレイボタン1 var botan = new ExSprite(62, 55); botan.image = core.assets["images/cf307/retrybotan.png"]; scene.addChild(botan); botan.x = 320 / 2 - botan.width / 2 - 80; botan.y = 400 - 10 + 50; botan.tl.moveBy(0, -50, 10); // ボタンをタッチ botan.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; gameStart(); }); //core.stop(); head.tl.clear(); body1.tl.clear(); body2.tl.clear(); body3.tl.clear(); body4.tl.clear(); body5.tl.clear(); // タイトルボタン var botan1 = new ExSprite(62, 55); botan1.image = core.assets["images/cf307/taitorubotan.png"]; scene.addChild(botan1); botan1.x = 320 / 2 - botan1.width / 2 + 80; botan1.y = 400 - 10 + 50; botan1.tl.moveBy(0, -50, 10); // ボタンをタッチ    botan1.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan1.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; title(); }); }); } });

/* バーに当たったらゲームオーバーに変更するから

Page 33: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

// bodyが全部移動し終わるまでタッチ不可にしたい //scene.touchEnabled = false; // できねえ・・のでカウンターを使ってみる counter = 1; scene.tl.delay(40).then(function(){ counter = 0; }); if(e.collision.target.tag == "上のバー"){   console.log("ぶつかったよ"); console.log(head.y); head.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ head.x = 2; } if(e.collision.target.tag == "左のバー"){ head.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ head.y = 2; } }); body1.addCollision(bar); body1.addCollision(barmigi); body1.addCollision(barhidari); body1.addCollision(barsita); body1.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body1.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body1.x = 2; } if(e.collision.target.tag == "左のバー"){ body1.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body1.y = 2; } }); body2.addCollision(bar); body2.addCollision(barmigi); body2.addCollision(barhidari); body2.addCollision(barsita);

Page 34: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body2.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body2.x = 2; } if(e.collision.target.tag == "左のバー"){ body2.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body2.y = 2; } }); body3.addCollision(bar); body3.addCollision(barmigi); body3.addCollision(barhidari); body3.addCollision(barsita); body3.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body3.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body3.x = 2; } if(e.collision.target.tag == "左のバー"){ body3.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body3.y = 2; } }); body4.addCollision(bar); body4.addCollision(barmigi); body4.addCollision(barhidari); body4.addCollision(barsita); body4.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body4.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body4.x = 2; }

Page 35: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

if(e.collision.target.tag == "左のバー"){ body4.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body4.y = 2; } }); body5.addCollision(bar); body5.addCollision(barmigi); body5.addCollision(barhidari); body5.addCollision(barsita); body5.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body5.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body5.x = 2; } if(e.collision.target.tag == "左のバー"){ body5.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body5.y = 2; } }); */

// タップすると scene.addEventListener(Event.TOUCH_START, function(e){ if(counter == 0){ // 壁にぶつかったあと全部移動するまでタッチ無効にする為 // 上向き(houkou=1) のとき if(houkou == 1){ // 右側タッチで右に曲がる if(head.x < e.x){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定 console.log(houkou);

Page 36: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

}); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8); body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); } // 左タッチで左に曲がる

Page 37: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

if(head.x > e.x){ console.log("上から左"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(-90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8); body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8); body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8);

Page 38: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); } } // 右向き(houkou=2) のとき if(houkou == 2){ // 上タッチで上に向かう if(head.y > e.y){ console.log(" 右から上"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8);

Page 39: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); }); } // 下タッチで下に向かう if(head.y < e.y){ console.log(" 右から下"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8); head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする console.log(houkou); });

Page 40: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8);

Page 41: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.loop(); }); } } // 左向き(houkou=3) のとき if(houkou == 3){ // 上タッチで上に向かう if(head.y > e.y){ console.log(" 右から上"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8);

Page 42: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); }); } // 下タッチで下に向かう if(head.y < e.y){ console.log(" 右から下"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8); head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop();

Page 43: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

}); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8); body5.tl.loop(); }); } } // 下向き(houkou=4) のとき if(houkou == 4){ // 右側タッチで右に曲がる if(head.x < e.x){

Page 44: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop();

Page 45: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8); body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); } // 左タッチで左に曲がる if(head.x > e.x){ console.log("下から左"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(270, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8); body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8);

Page 46: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); } } } }); //========== // ここまで //========== }

function title(){// タイトル画面 scene = gameManager.createGameScene(); core.replaceScene(scene); core.resume(); //========== // ここから //========== var background = new ExSprite(320, 480); background.image = core.assets["images/back_desert.png"]; scene.addChild(background); var hole = new ExSprite(82, 28); hole.image = core.assets["images/mole_hole_1_a.png"];

Page 47: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

hole.x = scene.width / 2 - hole.width / 2; hole.y = scene.height / 2 - hole.height / 2; scene.addChild(hole); hole.scale(0.5, 0.5); var egg = new ExSprite(32, 32); egg.image = core.assets["images/tg_egg.png"]; egg.x = scene.width / 2 - egg.width / 2 + 5; egg.y = scene.height / 2 - egg.height / 2 - 10; scene.addChild(egg); egg.rotate(30);

// 判定用エッグ var egg1 = new ExSprite(16, 16); //egg1.backgroundColor = "red"; egg1.x = egg.x + 8; egg1.y = egg.y + 8; scene.addChild(egg1); egg1.tag = "たまご";

var label = new Label("じゆうにれんしゅう!"); label.color = 'red'; label.font = "18px 'PixelMplus10'";// 28 label.textAlign = "center"; label.y = 30; scene.addChild(label);

var label1 = new Label("タップした方向にまがるよ"); label1.color = 'blue'; label1.font = "18px 'PixelMplus10'";// 28 label1.textAlign = "center"; label1.y = 55; scene.addChild(label1); var moziGroup = new Group; scene.addChild(moziGroup); var snakeGroup = new Group; scene.addChild(snakeGroup);

// スタートボタン var botan = new ExSprite(62, 55); botan.image = core.assets["images/b_red.png"];

Page 48: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

scene.addChild(botan); botan.x = 320 / 2 - botan.width / 2 - 80; botan.y = 400 - 10; // ボタンをタッチ botan.addEventListener(Event.TOUCH_START, function(){ botan.frame = 1; }); botan.addEventListener(Event.TOUCH_END, function(){ botan.frame = 0; gameStart(); }); var label2 = new Label("いざ本番!!"); label2.color = 'red'; label2.font = "18px 'PixelMplus10'";// 28 label2.x = botan.x - 5; label2.y = botan.y + 65; scene.addChild(label2);

// お手本を見るのボタン var botan1 = new ExSprite(62, 55); botan1.image = core.assets["images/b_blue.png"]; scene.addChild(botan1); botan1.x = 320 / 2 - botan1.width / 2 - 80 + 160; botan1.y = 400 - 10; // ボタンをタッチ botan1.addEventListener(Event.TOUCH_START, function(){ botan1.frame = 1; }); botan1.addEventListener(Event.TOUCH_END, function(){ botan1.frame = 0; demo(); }); var label3 = new Label("お手本を見る!"); label3.color = 'blue'; label3.font = "18px 'PixelMplus10'";// 28 label3.x = botan1.x - 20; label3.y = botan1.y + 65; scene.addChild(label3);

// 頭を表示 var head = new ExSprite(16, 16); head.image = core.assets["images/cf307/snakeheadene.png"];

Page 49: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

//head.backgroundColor = "red"; head.x = 320 - 20; head.y = 480 - 16 * 5; snakeGroup.addChild(head); var body1 = new ExSprite(16, 16); body1.backgroundColor = "green"; body1.x = head.x + head.width / 2 - body1.width / 2; body1.y = head.y + 16; snakeGroup.addChild(body1); var body2 = new ExSprite(16, 16); body2.backgroundColor = "green"; body2.x = head.x + head.width / 2 - body2.width / 2; body2.y = head.y + 16 * 2; snakeGroup.addChild(body2); var body3 = new ExSprite(16, 16); body3.backgroundColor = "green"; body3.x = head.x + head.width / 2 - body3.width / 2; body3.y = head.y + 16 * 3; snakeGroup.addChild(body3); var body4 = new ExSprite(16, 16); body4.backgroundColor = "green"; body4.x = head.x + head.width / 2 - body4.width / 2; body4.y = head.y + 16 * 4; snakeGroup.addChild(body4); var body5 = new ExSprite(16, 16); body5.backgroundColor = "green"; body5.x = head.x + head.width / 2 - body5.width / 2; body5.y = head.y + 16 * 5; snakeGroup.addChild(body5); // へびのうんちを作る関数 function makeMozi(f) { var mozi = new ExSprite(9, 9); mozi.image = core.assets["images/cf307/hebitama.png"]; mozi.x = body5.x + 8 - 4.5; mozi.y = body5.y + 8 - 4.5; moziGroup.addChild(mozi); mozi.frame = f;

Page 50: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

} snakeGroup.tl.delay(8).then(function(){ makeMozi(0); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(1); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(2); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(3); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(4); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(5); }); snakeGroup.tl.delay(8).then(function(){ makeMozi(6); }); snakeGroup.tl.loop(); // 最初の動き(上向き) head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); // 最初の方向(上向き) var houkou = 1; console.log(houkou); body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8);

Page 51: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.loop(); body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); var bar = new ExSprite(320, 1); //bar.backgroundColor = "red"; bar.y = 0; scene.addChild(bar); bar.tag = "上のバー"; var barmigi = new ExSprite(1, 480); //barmigi.backgroundColor = "red"; barmigi.x = 319; scene.addChild(barmigi); barmigi.tag = "右のバー"; var barhidari = new ExSprite(1, 480); //barhidari.backgroundColor = "red"; barhidari.x = 0; scene.addChild(barhidari); barhidari.tag = "左のバー"; var barsita = new ExSprite(320, 1); //barsita.backgroundColor = "red"; barsita.y = 479; scene.addChild(barsita); barsita.tag = "下のバー"; var counter = 0; // バーに当たったら head.addCollision(bar); head.addCollision(barmigi); head.addCollision(barhidari); head.addCollision(barsita); head.addCollision(egg1); head.addEventListener(Event.COLLISION, function(e) { // 卵に到達したら音 if(e.collision.target.tag == "たまご"){ counter = 0; var sound = core.assets["sounds/cf307/decision21.mp3"].clone(); sound.play();

Page 52: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

head.removeCollision(egg1); egg1.tl.delay(10).then(function(){ head.addCollision(egg1); }); }else{ // たまごのときは操作不能では困るからこれを入れる(barのとき一定時間操作不能 // bodyが全部移動し終わるまでタッチ不可にしたい //scene.touchEnabled = false; // できねえ・・のでカウンターを使ってみる counter = 1; scene.tl.delay(40).then(function(){ counter = 0; }); } if(e.collision.target.tag == "上のバー"){   console.log("ぶつかったよ"); console.log(head.y); head.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ head.x = 2; } if(e.collision.target.tag == "左のバー"){ head.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ head.y = 2; } }); body1.addCollision(bar); body1.addCollision(barmigi); body1.addCollision(barhidari); body1.addCollision(barsita); body1.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body1.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body1.x = 2; } if(e.collision.target.tag == "左のバー"){ body1.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body1.y = 2;

Page 53: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

} }); body2.addCollision(bar); body2.addCollision(barmigi); body2.addCollision(barhidari); body2.addCollision(barsita); body2.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body2.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body2.x = 2; } if(e.collision.target.tag == "左のバー"){ body2.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body2.y = 2; } }); body3.addCollision(bar); body3.addCollision(barmigi); body3.addCollision(barhidari); body3.addCollision(barsita); body3.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body3.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body3.x = 2; } if(e.collision.target.tag == "左のバー"){ body3.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body3.y = 2; } }); body4.addCollision(bar); body4.addCollision(barmigi); body4.addCollision(barhidari); body4.addCollision(barsita); body4.addEventListener(Event.COLLISION, function(e) {

Page 54: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

if(e.collision.target.tag == "上のバー"){  body4.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body4.x = 2; } if(e.collision.target.tag == "左のバー"){ body4.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body4.y = 2; } }); body5.addCollision(bar); body5.addCollision(barmigi); body5.addCollision(barhidari); body5.addCollision(barsita); body5.addEventListener(Event.COLLISION, function(e) { if(e.collision.target.tag == "上のバー"){  body5.y = 480 - 17; } if(e.collision.target.tag == "右のバー"){ body5.x = 2; } if(e.collision.target.tag == "左のバー"){ body5.x = 320 - 17; } if(e.collision.target.tag == "下のバー"){ body5.y = 2; } }); // タップすると scene.addEventListener(Event.TOUCH_START, function(e){ if(counter == 0){ // 壁にぶつかったあと全部移動するまでタッチ無効にする為 // 上向き(houkou=1) のとき if(houkou == 1){ // 右側タッチで右に曲がる if(head.x < e.x){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう

Page 55: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8);

Page 56: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); } // 左タッチで左に曲がる if(head.x > e.x){ console.log("上から左"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(-90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8); body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8); body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop();

Page 57: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); } } // 右向き(houkou=2) のとき if(houkou == 2){ // 上タッチで上に向かう if(head.y > e.y){ console.log(" 右から上"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear();

Page 58: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); }); } // 下タッチで下に向かう if(head.y < e.y){ console.log(" 右から下"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8);

Page 59: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear();

Page 60: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8); body5.tl.loop(); }); } } // 左向き(houkou=3) のとき if(houkou == 3){ // 上タッチで上に向かう if(head.y > e.y){ console.log(" 右から上"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(0, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, -16, 8); head.tl.moveBy(0, -16, 8); head.tl.loop(); houkou = 1; console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, -16, 8); body1.tl.moveBy(0, -16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, -16, 8); body2.tl.moveBy(0, -16, 8); body2.tl.loop(); }); body3.tl.unloop();

Page 61: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, -16, 8); body3.tl.moveBy(0, -16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, -16, 8); body4.tl.moveBy(0, -16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, -16, 8); body5.tl.moveBy(0, -16, 8); body5.tl.loop(); }); } // 下タッチで下に向かう if(head.y < e.y){ console.log(" 右から下"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(180, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(0, 16, 8); head.tl.moveBy(0, 16, 8); head.tl.loop(); houkou = 4; // 下方向を4とする console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので

Page 62: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x; // ずれを修正 body1.tl.moveBy(0, 16, 8); body1.tl.moveBy(0, 16, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.x = head.x; // ずれを修正 body2.tl.moveBy(0, 16, 8); body2.tl.moveBy(0, 16, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.x = head.x; // ずれを修正 body3.tl.moveBy(0, 16, 8); body3.tl.moveBy(0, 16, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.x = head.x; // ずれを修正 body4.tl.moveBy(0, 16, 8); body4.tl.moveBy(0, 16, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.x = head.x; // ずれを修正 body5.tl.moveBy(0, 16, 8); body5.tl.moveBy(0, 16, 8); body5.tl.loop(); }); }

Page 63: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

} // 下向き(houkou=4) のとき if(houkou == 4){ // 右側タッチで右に曲がる if(head.x < e.x){ head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(90, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(16, 0, 8); head.tl.moveBy(16, 0, 8); head.tl.loop(); houkou = 2; // 右方向を2と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.tl.moveBy(16, 0, 8); body1.tl.moveBy(16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(16, 0, 8); body2.tl.moveBy(16, 0, 8); body2.tl.loop(); }); body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(16, 0, 8); body3.tl.moveBy(16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう

Page 64: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body4.tl.moveBy(16, 0, 8); body4.tl.moveBy(16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(16, 0, 8); body5.tl.moveBy(16, 0, 8); body5.tl.loop(); }); } // 左タッチで左に曲がる if(head.x > e.x){ console.log("下から左"); head.tl.unloop(); head.tl.clear(); head.tl.rotateTo(270, 0); head.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう head.tl.moveBy(-16, 0, 8); head.tl.moveBy(-16, 0, 8); head.tl.loop(); houkou = 3; // 左方向を3と指定 console.log(houkou); }); body1.tl.unloop(); body1.tl.clear(); body1.tl.moveTo(head.x, head.y, 8);// body一個分進んでからなので body1.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body1.x = head.x + 16;// ズレを修正 body1.tl.moveBy(-16, 0, 8); body1.tl.moveBy(-16, 0, 8); body1.tl.loop(); }); body2.tl.unloop(); body2.tl.clear(); body2.tl.moveTo(head.x, head.y, 8 * 2);// body2個分進んでからなので body2.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body2.tl.moveBy(-16, 0, 8); body2.tl.moveBy(-16, 0, 8); body2.tl.loop(); });

Page 65: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

body3.tl.unloop(); body3.tl.clear(); body3.tl.moveTo(head.x, head.y, 8 * 3);// body3個分進んでからなので body3.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body3.tl.moveBy(-16, 0, 8); body3.tl.moveBy(-16, 0, 8); body3.tl.loop(); }); body4.tl.unloop(); body4.tl.clear(); body4.tl.moveTo(head.x, head.y, 8 * 4);// body4個分進んでからなので body4.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body4.tl.moveBy(-16, 0, 8); body4.tl.moveBy(-16, 0, 8); body4.tl.loop(); }); body5.tl.unloop(); body5.tl.clear(); body5.tl.moveTo(head.x, head.y, 8 * 5);// body5個分進んでからなので body5.tl.then(function(){ //こうしないと上にむかうloopが効いてしまう body5.tl.moveBy(-16, 0, 8); body5.tl.moveBy(-16, 0, 8); body5.tl.loop(); }); } } } }); //========== // ここまで //========== }

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();}); scene.on(enchant.Event.TOUCH_START, function(){title();});

Page 66: MainmakeKabe(32, 1, 32 * 4, 32 * 12); // 14 makeKabe(1, 32 * 10, 32 * 2, 32 * 3); // 15 makeKabe(32 * 3, 1, 32 * 2, 32 * 3); // 16 makeKabe(32 * 3, 1, 32 * 4, 32 * 4

//scene.on(enchant.Event.TOUCH_START, function(){demo();}); }

//========== // 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(); }