モグラたたきを作っているのですが、
Botan[counter].ontouchend = function(){}内の命令が作用しません。
僕の予想では、出てきたモグラ(BotanImg)をクリックすれば、得点(point)が1増えて、モグラは消える(BlackBotanImgに戻る)はずなのですが、そうなりません。
javascript
1enchant(); 2 3window.onload = function(){ 4 var game = new Game(400,500); 5 6 var AtariSound = "atari.mp3"; 7 game.preload([AtariSound]); 8 9 var BotanImg = "botan.png"; 10 game.preload([BotanImg]); 11 var BlackBotanImg = "blackbotan.png"; 12 game.preload([BlackBotanImg]); 13 14 game.onload = function(){ 15 16 var Point = 0; 17 var LIMIT_TIME = 15; 18 var Mogu = [];//0=受付状態,1=点灯状態,2=休止状態 19 for (var i=0;i<16;i++){ 20 Mogu[i] = 0; 21 } 22 var RndForMogu = []; 23 var ReviveTime = []; 24 for (var i=0;i<16;i++){ 25 ReviveTime[i] = 0; 26 } 27 28 var S_MAIN = new Scene(); 29 30 game.pushScene(S_MAIN); 31 32 S_MAIN.backgroundColor = "black"; 33 34 35 var S_Text = new Label(); 36 S_Text.font = "20px Meiryo"; 37 S_Text.color = 'rgba(255,255,255,1)'; 38 S_Text.width = 400; 39 S_Text.moveTo(0,20); 40 S_MAIN.addChild(S_Text); 41 42 var Time_Lavel = new Label(); 43 Time_Lavel.font = "20px Meiryo"; 44 Time_Lavel.color = 'rgba(255,255,255,1)'; 45 Time_Lavel.width = 400; 46 Time_Lavel.moveTo(0,0); 47 S_MAIN.addChild(Time_Lavel); 48 49 var Botan = new Array(); 50 51 52 game.onenterframe = function(){ 53 54 for (var i=0;i<16;i++){ 55 RndForMogu[i] = Math.floor(Math.random()*100); 56 if(RndForMogu[i] == 1 && Mogu[i] == 0){ 57 Mogu[i] = 1; 58 } 59 } 60 61 var counter = 0; 62 for (var y=0;y<4;y++){ 63 for (var x=0;x<4;x++){ 64 Botan[counter] = new Sprite(100,100); 65 Botan[counter].x = x * 100; 66 Botan[counter].y = y * 100 + 100; 67 S_MAIN.addChild(Botan[counter]); 68 69 ////////////////////////////////////// 70 // 問題の箇所 // 71 ////////////////////////////////////// 72 Botan[counter].ontouchend = function(){//クリックされたときの対応 73 if(Mogu[counter] == 1){ 74 game.assets[AtariSound].clone().play(); 75 Mogu[counter] = 2; 76 Point++; 77 ReviveTime[counter] = parseInt(game.frame/game.fps); 78 } 79 } 80 81 if(Mogu[counter] == 1){//画像の決定(非出現時は真っ黒な画像にする) 82 Botan[counter].image = game.assets[BotanImg]; 83 }else{ 84 Botan[counter].image = game.assets[BlackBotanImg]; 85 } 86 87 if(Mogu[counter] == 2 && (ReviveTime[counter] - parseInt(game.frame/game.fps) >= 1)){//叩いた後一定時間が経てば、再び出てくる 88 Mogu[counter] = 0; 89 } 90 counter ++; 91 } 92 } 93 94 S_Text.text = "スコア:" + Point; 95 96 time = LIMIT_TIME - parseInt(game.frame/game.fps) +""; 97 Time_Lavel.text = "残り時間:" + time; 98 99 } 100 } 101 102 game.start(); 103}
javascriptを用いるのは、これが初めてなので、基礎中の基礎で間違いがあるかもしれません。
ご指導宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー