Cocos2dでゲーム作成[1-1]

・敵の位置情報、宇宙船の位置情報どちらもposになっていたが分けた方がわかりやすいのではないか?
・爆弾の設置はTouchesBeganかTouchesEndedどっちでとった方がいいか。
・enemies.push(enemy) push()とは。
 push()はArrayのメソッド。配列の最後に追加。cocos2d独自のインスタンスと勘違いしてた。
・Cでいう#define MAX 3 をjavascriptでの定義の仕方

・爆弾を配列で追加しようとしたときに出たエラー
Uncaught TypeError: Cannot read property ‘getPosition’ of undefined

  	var bom = this.boms[0];
	//爆弾の現在位置を取得
	var bPos = this.bom.getPosition();

this.bomのthisが不要でした。

this.bomはインスタンスのプロパティ
var bomは変数
上記のエラーはだいたいthisのつけ忘れか、つけ間違い。

・一度のクリックで爆弾3個連続で配置してしまう問題。
高速ループ(60fps)なのでdelayカウントをはさまずに爆弾を置こうとすると複数個連続で設置されてしまった。
delay変数を作り条件で 50 > delay を追加することにより連続で設置していた問題は解決しました。
ただ、もうちょいうまいやり方があるのではないかと思う。

もしstate1(設置状態)ならcount -= count;
もしcount == 0になったら
onBomFire( )を実行する

gameMain.js(sample.js)

init:function(){
  ステータスの設定
  ・フィールドの配置
  ・爆弾の配置
  ・敵の配置
},

update:function(dt){
  更新、移動、あたり判定
  [常]
  ・敵の移動

  [条件]
  ・[1]boms[i].stateが0である。[2][3]タッチイベントがあれば爆弾[i]をその位置に配置。
  ・爆弾の時間判定
  ・火力あたり判定
},

onBomFire:function(){
  爆発のエモーション
  もし他の爆弾に引火判定があれば{
onBomFire()自分自身を呼び出す(再起)
}
  countを元に戻す
},

onGameover:function(){
  ゲームオーバー画面遷移
},

onTouchesBegan:function {touches,event){
  タッチしたときの座標を取得(今回の操作は配置のみのためBeganだけでよい)
  ・触ったときに爆弾を配置
},
onTouchesMoved:function {touches,event){
  this.touched = null;
},
onTouchesEnded:function (touches, event) {
  //・タッチ離したときに座標を取得(Endedもいれたほうが操作性がよい)
  this.touched = null;
},
onTouchesCancelled:function (touches, event) {
  this.touched = null;
},

スポンサーリンク
RESAD
RESAD

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
RESAD