年賀状メールとして公開する予定だったミニゲームが今日、とりあえず公開できるレベルに達しました。
寅がパンチで2010年の厄(やく)を追い払うゲームです。迫ってくる厄に合わせてキーボードの左右キーを押すことで、追い払うことできます。倒すごとにハッピーパワーが増加します。逆に厄をトラが受けてしまうとアンラッキーが増加してしまいます。厄はより近くでパンチすることで多くのハッピーパワーがもらえます。
ちなみにスクリプトはこちら↓
var hit1L:Boolean = false;
var hit1R:Boolean = false;
var hit2L:Boolean = false;
var hit2R:Boolean = false;
var down:Boolean = false;
var hit_acL:Number = 1;
var hit_acR:Number = 1;
var dm:int = 0;
var yk:int = 0;
var timer1:Timer = new Timer(33);
timer1.addEventListener(TimerEvent.TIMER, loop1);
timer1.start();
var tt:int = 33;
var timer_R:Timer = new Timer(1000);
var rad:Number = 0;
pk_L.y = 1000;
pk_R.y = 1000;
//pk_U.y = 1000;
yaku1.x = -200;
yaku2.x = 700;
yaku1.y = 280;
yaku2.y = 280;
tora.x = stage.stageWidth/2 - tora.width*0.8/2;
//------ループ(おもに衝突判定)--------
function loop1(e:TimerEvent):void {
//tt++;
//tt_txt.text = String(tt);
//timer1 = new Timer(tt);
//timer1.addEventListener(TimerEvent.TIMER, loop1);
yaku1.x += tora.x/100*hit_acL;
yaku2.x -= tora.x/100*hit_acR;
if(yaku1.x < -100){
yaku1.x = -100;
hit_acL = 1;
}
if(yaku2.x>800){
yaku2.x = 700;
hit_acR = 1;
}
rad += Math.PI/10;
rad += Math.PI/10;
yaku1.y += 5 * Math.sin(rad);
yaku2.y += 5 * Math.sin(rad + Math.PI);
hit1L = pk_L.hitTestObject(yaku1);
hit1R = pk_R.hitTestObject(yaku2);
if(hit1L==true){
hit_acL = -5;
yk++;
}
if(hit1R==true){
hit_acR = -5;
yk++;
}
hit2L = tora.hitTestObject(yaku1);
hit2R = tora.hitTestObject(yaku2);
if(hit2L==true){
down = true;
dm++;
tora.gotoAndPlay(2);
yaku1.x = -100;
}
if(hit2R==true){
down = true;
dm++;
tora.gotoAndPlay(2);
yaku2.x = 700;
}
//数値表示
test1_txt.text = String("UNLuckey:"+dm);
test2_txt.text = String("HAPPY POWER:"+yk);
}
// ---------キーボード処理↓--------------------------
var spd:Number = 2;
//アニメーションはフレーム毎ではなく、時間毎に再生
var timer:Timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, loop);
timer.start();
//t_sp.stop();
//キーボード操作のためのフラグ
var wk1:Boolean = false;
var wk2:Boolean = false;
var wk3:Boolean = false;
//ステージにキーボードイベントを追加
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKD);
stage.addEventListener(KeyboardEvent.KEY_UP, onKU);
//キーボードを押したときの判定
function onKD(e:KeyboardEvent):void {
//trace("onKD");
//t_sp.x += 5;
if(down==false){
if(e.keyCode==Keyboard.RIGHT&&wk2==false&&wk3==false){
//wk1 = true;
wk1 = true;
tora.scaleX = -1;
tora.x = stage.stageWidth/2 + tora.width/2;
}else if(e.keyCode==Keyboard.LEFT&&wk1==false&&wk3==false){
wk2 = true;
tora.scaleX = 1;
tora.x = stage.stageWidth/2 - tora.width*0.8/2;
//}else if(e.keyCode==Keyboard.UP&&wk1==false&&wk2==false){
//wk3 = true;
}
}
}
//キーボードを離した時の判定
function onKU(e:KeyboardEvent):void {
if(e.keyCode==Keyboard.RIGHT){
wk1 = false;
pk_R.y = 1000;
//timer_R.addEventListener(TimerEvent.TIMER, loop_R);
//timer_R.start();
//pk_R.y = 1000;
//t_sp.gotoAndStop(1);
}
if(e.keyCode==Keyboard.LEFT){
wk2 = false;
pk_L.y = 1000;
//t_sp.gotoAndStop(1);
}
//if(e.keyCode==Keyboard.UP){
//wk3 = false;
//pk_U.y = 1000;
//t_sp.gotoAndStop(1);
//}
}
//時間毎の動作
function loop(e:TimerEvent):void {
//pk_L.y = 1000;
pk_L.y = 1000;
//pk_U.y = 1000;
if(wk1){
pk_R.y = 250;
//pk_R.loop_R();
//t_sp.x += spd;
//t_sp.scaleX = 1;
//t_sp.play();
}
if(wk2){
pk_L.y = 250;
//t_sp.x -= spd;
//t_sp.scaleX = -1;
//t_sp.play();
}
//if(wk3){
//pk_U.y = 200;
//t_sp.x -= spd;
//t_sp.scaleX = -1;
//t_sp.play();
//}
}
/*function loop_R(e:TimerEvent):void {
if){
pk_R.y = 250;
}else{
pk_R.y = 1000;
}
}*/









関連する記事