enchant.jsのプログラムに関する質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
エンちゃん

enchant.jsのプログラムに関する質問です

#1

投稿記事 by エンちゃん » 3年前

[1] 質問文
 [1.1] 自分が今行いたい事は何か
    現在、プログラムの練習としてenchant.jsを使用して、フリーゲームホッピング天子のようなゲームを製作しています。しかし、エラーではないのですが自分が考えているように動かなかったので質問させてください。
 [1.2] どのように取り組んだか(プログラムコードがある場合記載)

コード:

enchant();
window.onload = function(){
	var game = new Game(320,320);//ゲーム本体を準備すると同時に表示される領域の大きさを設定
	game.fps =24;//ゲームの進行スピードを設定
	game.preload('img/chara1.png');//ゲームで使用する素材を事前に読み込んでおく
	game.preload('img/btnNew.png');
	game.onload = function(){//メインの処理

		var kuma = new Sprite(32,32);//クマという操作可能な画像スプライトを準備すると同時に、領域の大きさを設定。
		kuma.image = game.assets['img/chara1.png'];//クマにあらかじめロードしておいた画像を適応
		kuma.x =100;//クマの横座標
		kuma.y =260;//クマの縦座標
		game.rootScene.addChild(kuma);//ゲームのシーンにクマを表示させる
		
		var asi = new Sprite(32,32);
		asi.image = game.assets['img/btnNew.png'];
		asi.x =100;//横座標 (足場の位置は後で変更)
		asi.y =260;//縦座標
		game.rootScene.addChild(asi);

		var asi1 = new Sprite(32,32);
		asi1.image = game.assets['img/btnNew.png'];
		asi1.x =150;//横座標 (足場の位置は後で変更)
		asi1.y =200;//縦座標
		game.rootScene.addChild(asi1);
		
		
		game.rootScene.backgroundColor ='#7ecef4';//ゲームの動作部分の背景色を設定
		
		var kuma_move = function(){
			if(game.input.right){
				kuma.x=kuma.x+3;
			}
			
			if(game.input.left){
				kuma.x=kuma.x-3;
			}
		}
		
		var kuma_jump = function(){
			if(kuma.intersect(asi)) {//衝突した際の処理
			 kuma.addEventListener("enterframe",function(){
				for(var i = 0; i<3; i++){
					if(kuma.y>asi.y-120){//くまy260、あし140まで登る、120
						kuma.y=kuma.y-1;
					}
				}
			 });
          	}
		}
          	
		var kuma_jump2 = function(){
          	if(kuma.intersect(asi1)) {//衝突した際の処理
          	kuma.removeEventListener("enterframe",kuma_jump);
			 kuma.addEventListener("enterframe",function(){
				for(i = 0; i<3; i++){
					if(kuma.y>asi1.y-120){//あし200でのぼる。80
						kuma.y=kuma.y-1;
					}
				}
			 });
          	}
          	
		}
		var kuma_sagaru = function(){
			kuma.addEventListener("enterframe",function(){
			
				if(kuma.y<280){
					kuma.y=kuma.y+1;
				}
         	 });
		}
		kuma.addEventListener("enterframe",kuma_move);
		kuma.addEventListener("enterframe",kuma_sagaru);
		kuma.addEventListener("enterframe",kuma_jump);
		kuma.addEventListener("enterframe",kuma_jump2);
	}
    game.start();
    
};
 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
これを実行すると、kuma_jumpが実行されるときは、しっかりクマの画像はY方向に140上がり、kuma_sagariも実行されY280まで球磨の画像が下がるのですが、kuma_jump2が実行されるとY方向に140上がらず、クマの画像はほとんどジャンプしてくれません。Jump2はJumpをコピペして持ってきたものなので同じ高さ上がるはずなんですが、どこが間違っているのかわかる方がいたら教えてください。

[2] 環境  
 [2.1] OS : Windows8.1

“C言語何でも質問掲示板” へ戻る