ここ3日ばかりゲームのスクリプトばかり考えていました。
まず、キャラクターを斜めに動かしたとき、移動速度が他のときより早くなる問題が持ち上がる。これは
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
this._x += speed / Math.SQRT2;
this._y += speed / Math.SQRT2;
}
という形で解決。
キャラクターの名前を覚えさせたいなあと思いだし、SharedObjectの使い方を研究。
ついでにパスワードもつけて、入力が正しく行われているかの判定方法を考える。
function checkPW() {
//入力が正しかったとき
if ((pass_txt.length > 0) && (pass_txt.length <= 10)) {
//名前とパスワードでセーブするディレクトリ名を決める
savedata = SharedObject.getLocal(namebox + pass_txt);
savedata.flush();
//ゲーム開始画面へ移動
this.gotoAndPlay("game");
} else if(pass_txt.length > 10){
//文字数オーバー
messages = "パスワードは10文字以内です";
} else {
//空欄だったとき
messages = "パスワードがありません";
}
}
んで、データの呼び出しなんですが、名前とパスワードがあってる場合は問題ないんですが、間違っている判定をつけようとすると・・・。
savedata = SharedObject.getLocal(savename + savepass);
loaddata = savedata.getSize();
//名前とパスワードのチェック
function checkNAMEPW() {
//入力が正しかったとき(データがあるかどうか)
if (loaddata > 0) {
messages = "OK!";
} else {
//入力が正しくないとき
messages = "データがありません";
}
}
savedata = SharedObject.getLocal(savename + savepass);を使うと、
書き込みされなくてもデータとして存在してしまうらしく、間違ったパスワードをいれてもデータがあると判定されちゃうんです~;;
あ~、もう思いつかない~。