$(document).ready(function(){ logger = new SwitchApps.Logger(SwitchApps.app.id, null); LOG_switch = logger.addHeader('スイッチ入力'); LOG_on = logger.addHeader('扇風機オン'); LOG_off = logger.addHeader('扇風機オフ'); /*必要なオプションの状態はオブジェクトで宣言*/ BACK = {set:1}; createSettingBox("背景","back_ground",BACK,12,"あかるい","くらい","まっくら"); }); /* * おまじない */ enchant(); window.focus(); var _DIR_ = SwitchApps.scriptDir(); var logger = null; /* * 定数 */ // パラメータ var SCREEN_W = 700; // スクリーンの幅 var SCREEN_H = 500; // スクリーンの高さ // 画像 var BOY_IMAGE = _DIR_ + "/images/boy1.png"; var FAN_IMAGE = _DIR_ + "/images/fan.png"; var BG = _DIR_ + "/images/bg.png"; // SE、BGM var FAN_SE = _DIR_ + "/sounds/fan.mp3"; // アセットリスト var ASSETS = [ BOY_IMAGE, FAN_IMAGE,BG, FAN_SE ]; /* * グローバル変数 */ var game = null; var flg = 0; //0:off 1:on アニメーションの切り替え var fp = 1; //0:off 1:on 入力の無効・有効の切り替え var time= 0; /* * 汎用処理 */ //ランダム値生成 var randfloat = function(min, max) { return Math.random()*(max-min)+min; }; //キーバインド設定 var keyset = function(key){ game.keybind(key, 'a'); //aボタン(「z」キー)を押した時のイベント処理 game.currentScene.onabuttondown = function() { var ev = new Event('touchstart'); // 発火! game.currentScene.dispatchEvent(ev); }; }; /* * メイン処理 */ window.onload = function() { game = new Game(SCREEN_W, SCREEN_H); // 画像の読み込み game.preload(ASSETS); // ゲーム開始時の処理 game.onload = function() { var scene = game.rootScene; scene.backgroundColor = "#fff"; //キーバインドの設定 keyset(49); //1キー keyset(51); //3キー keyset(32); //spaceキー keyset(10); //Enter1 keyset(13); //Enter windows keyset(123); //F12キー onclick = "click()"; /****************画像生成****************/ //背景 var bg = new Sprite(SCREEN_W, SCREEN_H); bg.image = game.assets[BG]; scene.addChild(bg); if(BACK.set==1){ scene.addChild(bg); scene_now = BACK.set; }else if(BACK.set==3){ scene.removeChild(bg); scene.backgroundColor = "white"; scene_now = BACK.set; }else if(BACK.set == 2){ scene.removeChild(bg); scene.backgroundColor = "black"; scene_now = BACK.set; } /* //フラグチェック用 var fp_chk = new Label("fp = "+fp); game.rootScene.addChild(fp_chk); var fg_chk = new Label("fg = "+fg); fg_chk.moveTo(0,20); game.rootScene.addChild(fg_chk); */ scene.onenterframe = function() { //背景設定 if(BACK.set != scene_now){ if(BACK.set==1){ bg.opacity = 1; scene.addChild(bg); scene_now = BACK.set; scene.addChild(boy1); scene.addChild(fan1); }else if(BACK.set==3){ scene.removeChild(bg); scene.backgroundColor = "black"; scene_now = BACK.set; }else if(BACK.set == 2){ scene.removeChild(bg); scene.backgroundColor = "black"; bg.opacity = 0.3; scene.addChild(bg); scene_now = BACK.set; scene.addChild(boy1); scene.addChild(fan1); } } /* フラグチェック用 fp_chk.text = "fp = "+ fp; */ if(fp ===0){ time++; if(time ===30){ fp = 1; time = 0; } } if(fp === 0){scene.ontouchstart =null;} //fpが0なら入力を無効 else { scene.ontouchstart = function(){ //アニメーションの切り替え LOG_switch(); if(flg === 0){ if(game.assets[FAN_SE].src){ // webAudioSound用 game.assets[FAN_SE].play(); game.assets[FAN_SE].src.loop = true; LOG_on(); } flg=1; fp=0; }else { if(game.assets[FAN_SE].src){ // webAudioSound用 game.assets[FAN_SE].stop(); LOG_off(); } flg = 0; fp=0; } };} }; //少年 var boy1 = new Sprite(262, 414); boy1.WaitMax = 5; //アニメーションのWait値 boy1.WaitCount = 0; //アニメーションのWait値のカウント boy1.scale(0.75, 0.75); boy1.image = game.assets[BOY_IMAGE]; boy1.moveTo(50, 0); scene.addChild(boy1); boy1.addEventListener('enterframe', function(){ if(flg === 0){ if(boy1.WaitCount >= boy1.WaitMax){ //WaitMax値を超えたらフレームを1進める boy1.WaitCount = 0; boy1.frame +=1; boy1.frame %=2; } else { boy1.WaitCount++; } } else { boy1.frame +=1; boy1.frame =boy1.frame%2 + 4; } }); //扇風機 var fan1 = new Sprite(343, 414); fan1.WaitMax = 1; //アニメーションのWait値 fan1.WaitCount = 0; //アニメーションのWait値のカウント fan1.scale(0.75, 0.75); fan1.image = game.assets[FAN_IMAGE]; fan1.moveTo(250, 0); fan1.addEventListener('enterframe', function(){ if(flg === 1){ this.frame +=1; this.frame =this.frame%2 + 4; if(!game.assets[FAN_SE].src){ // DOMSound用 game.assets[FAN_SE].play(); } //SEループ } else { this.frame = 0; if(!game.assets[FAN_SE].src){ // DOMSound用 game.assets[FAN_SE].stop(); } } }); scene.addChild(fan1); }; game.start(); };