連打ゲーム
♥0 |
Line 106 |
Modified 2009-10-11 18:59:58 |
MIT License
archived:2017-03-20 04:35:28
ActionScript3 source code
/**
* Copyright matubo ( http://wonderfl.net/user/matubo )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/VrwB
*/
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical" horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
import mx.controls.*;
import mx.events.*;
import mx.formatters.*;
import mx.graphics.codec.*;
import flash.external.*;
import flash.utils.getTimer;
import flash.utils.Timer;
import flash.display.Sprite;
import flash.text.*;
private var onGame:Boolean = false;//ゲーム中か
private var timer:Timer =new Timer(1000);//時間
private var startTime:Number;//開始時間
private var point:Number =1;//得点
private var num:Number;//ボタンの番号
// ゲーム開始
private function onStartButtonClick():void {
//ゲーム中は開始ボタン押せないよ!
if(onGame){
return;
}
onGame = true;
//初期化
point = 1;
// 開始時刻を取得
startTime = getTimer();
// タイマーをスタート
timer.addEventListener(TimerEvent.TIMER, onTimerTick);
timer.start();
}
//時間管理
private function onTimerTick(event:TimerEvent):void {
// 経過時間(秒)
var elapsedTime:int = (getTimer() - startTime)/1000;
// 制限時間N秒から経過時間を引く
var n:int = 10;
var dispTime:int = n - elapsedTime;
// 表示時刻をフォーマットし、ラベルに表示する
if(dispTime >= 60) {
var min:int = dispTime/60;
var sec:int = dispTime - 60*min;
timeLabel.text = formatTime(min, sec);
} else if(dispTime >= 0) {
timeLabel.text = formatTime(0, dispTime);
} else {
timeLabel.text = "00:00";
timer.stop();
onGame = false;
}
}
//表示時刻のフォーマット
private function formatTime(min:int, sec:int):String {
var minString:String = "";
var secString:String = "";
if(min < 10) {
minString = "0" + String(min);
} else {
minString = String(min);
}
if(sec < 10) {
secString = "0" + String(sec);
} else {
secString = String(sec);
}
return minString.concat(":").concat(secString);
}
//判定
private function onNumberButtonClick():void {
if(!onGame){
return;
}
//if(番号が合ってるか)
pt.text = String(point++);
//番号を++;
}
]]>
</mx:Script>
<mx:Panel
title="クリックゲーム(^ω^)"
horizontalAlign="center"
>
<mx:HBox>
<mx:Label text="点数:" fontSize="20"/>
<mx:Label text="0" id="pt" fontSize="20"/>
<mx:Label text="時間:" fontSize="20"/>
<mx:Label text="00:10" id="timeLabel" fontSize="20"/>
<mx:Button
id="btn_S"
label="開始"
click="onStartButtonClick()"
width="70"
height="35"
fontSize="14"
/>
</mx:HBox>
<mx:Canvas
id="cvs"
borderStyle="solid"
width="350"
height="250"
top="50"
>
<mx:Button
id="btn1"
label="連打!"
click="onNumberButtonClick()"
x="20"
y="20"
width="300"
height="200"
fontSize="50"
/>
</mx:Canvas>
</mx:Panel>
</mx:Application>