アプリ版:「スタンプのみでお礼する」機能のリリースについて

javascriptのenchantで打ちミスをしてつまづいてます。
だけど、どこがどうミスしてるのかわかりません。

プログラム作成で利用しているサイトはこちらです。
http://code.9leap.net/codes/edit/83463


参考書はこれです。↓↓
http://www.amazon.co.jp/s/ref=nb_sb_noss_1?__mk_ …



ソースはこれです。↓↓

enchant();

var game;
var scoreLabel;
var timeLabel;
var mogura =new Array(9);

function rand(num){
return Math.floor(Math.random()*num);
}
Mogura =Class.create(Sprite,{
initialize:function(x,y){
Sprite.call(this,80,80);
this.image =game.assets["mogura.png"];
this.x=x;
this.y=y;
this.status=-rand(200);
},
onenterframe:function(){
this.staus++;
if(this.status<0){
this.frame=0;
}else if(this.status==0){
this.frame=1;
}else if(this.status == 30){
this.status=-rand(200);
}
},

ontouchend:function(){
if(this.frame==1){
this.frame=2;
this.status=0;
scoreLabel.score+100;
}
}
});

window.onload=function(){
game=new Game(320,320);
game.rootScene.backgroundColor="rgb(144,198,116)";

game.preload("mogura.png");

game.onload =function(){
for(var i=0; i<9;i++){
mogura[i]=new Mogura(
20+i%3*100,
50+Mathfloor(i/3)*80);
game.rootScene.addChild(mogura[i]);

}
scoreLabel = new ScoreLabel(5,5);
scoreLabel.score=0;
game.rootScene.addChild(scoreLAbel);

timeLabel =new TimeLabel(5,25,"countdown");
timeLabel.time =10;
timeLabel.onenterframe =function(){
if(timeLabel.time<=0){
game.end();
}
}
game.rootScene.addChild(timeLabel);
}
game.start();
}

このソースの15行目の }else if(this.status==0){で黄色の三角マークが出ているのですが、
どこが間違ってるのかまったくわかりません。
全部消してやり直しても同じところで同じマークが出てしまいます。
どこが間違ってて、どうすればいいのか、教えてください。

A 回答 (2件)

> プログラム作成で利用しているサイトはこちらです。


> http://code.9leap.net/codes/edit/83463
……ごめん、そのページ見るにはそのサイトへの登録とログインが必要だから見れないや。
おまけに Amazon.co.jp のリンクは検索結果一覧のページだから、何を参考書にしているのかわからないし。
さらに言えば、「このソースの15行目」って
> this.x=x;
にしか見えないんだけど。

とりあえず気になったのが、あなたがマークが出ているという行の少し前の
> this.staus++;
って行(変数名が変じゃね?)ですけど、「黄色の三角マークが出ている」という行から離れているのでこれが原因かどうか……。
その「プログラム作成で利用しているサイト」には問題のある個所にマークをつけるだけじゃなくってその問題の詳細をどこかに表示するか、マークにマウスカーソルを合わせると問題の詳細を出すくらいしてそうなんだけど、何か出ていませんか?

この回答への補足

いくつかのご指摘ありがとうございます。
まず、参考書は 勇者と冒険する ゲームプログラミングの世界: enchant.js+JavaScriptで行こう!  です。

そして15行目じゃなくて、23行目の}else if(this.status==0){でした。


>とりあえず気になったのが、あなたがマークが出ているという行の少し前の
>> this.staus++;

こちら気づきませんでした。staus じゃなくてstatusでした。

そして黄色の三角マークの詳細は
Use '===' to compare with '0'  です。

=が3個もあるってことを指摘しているのか、0が半角英数じゃないのか?って思って、確認しましたが、それでもだめでした。

補足日時:2014/11/09 07:29
    • good
    • 0

>Use '===' to compare with '0'


これは==演算子ではなく、===演算子を使った方が良いと警告しています。

javascriptは==演算子(等価演算子)と===演算子(厳密等価演算子)の2種類あります。
==演算子より===演算子の方が厳密に比較されるので、極力===演算子を使った方が良いです。

この回答への補足

==を===に、増やして変えてもだめでした。

補足日時:2014/11/09 09:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!