泣いて馬謖を斬る 猛将伝
以前Forkして作った物を自分の力だけでつくり直してみた
そんなに変わってはいない
♥0 |
Line 213 |
Modified 2010-09-04 07:59:50 |
MIT License
archived:2017-03-20 17:26:27
ActionScript3 source code
/**
* Copyright hig_an ( http://wonderfl.net/user/hig_an )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/uZUa
*/
package {
//以前Forkして作った物を自分の力だけでつくり直してみた
//そんなに変わってはいない
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.*;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
[SWF(backgroundColor = "#FFFFFF", width = "465", height = "465", frameRate = "30")]
public class Main extends Sprite {
private var message:TextField;
private var gameField:TextField = new TextField();
private var bushouArray:Array = new Array();
private var bushou:String ="";
private var killedNum:int = 0;
private var killedNumRyuzen:int = 0;
private var score:int = 0;
private var killBtn:Button;
private var releaseBtn:Button;
private var easyBtn:Button;
private var vEasyBtn:Button;
private var eEasyBtn:Button;
private var restartBtn:Button;
private var tf:TextField = new TextField();
private var tformG:TextFormat = new TextFormat();
public function Main():void {
addChild(tf);
message = new TextField();
message.autoSize = TextFieldAutoSize.CENTER;
var tform:TextFormat = new TextFormat();
tform.size = 20;
tformG.align = TextFormatAlign.CENTER;
tform.align = TextFormatAlign.CENTER;
message.defaultTextFormat = tform;
gameField.autoSize = TextFieldAutoSize.CENTER;
gameField.background = true;
addChild(message);
message.x = stage.stageWidth / 2 - message.textWidth / 2;
message.y = 100;
gameField.x = stage.stageWidth / 2 - message.textWidth / 2;
gameField.y = 100;
message.visible = false;
addChild(gameField);
gameField.visible = false;
gameField.text = bushou;
killBtn = new Button("泣いて斬る ←");
releaseBtn = new Button("→ 斬らない");
addChild(killBtn);
addChild(releaseBtn);
killBtn.visible = false;
releaseBtn.visible = false;
killBtn.x = 100;
releaseBtn.x = stage.stageWidth - 100 - releaseBtn.width;
killBtn.y = 300;
releaseBtn.y = 300;
easyBtn = new Button("Hard");
vEasyBtn = new Button("Normal");
eEasyBtn = new Button("Extreme Easy");
addChild(easyBtn);
addChild(vEasyBtn);
addChild(eEasyBtn);
easyBtn.visible = false;
vEasyBtn.visible = false;
eEasyBtn.visible = false;
easyBtn.x = stage.stageWidth / 2 - easyBtn.width / 2;
vEasyBtn.x = stage.stageWidth / 2 - vEasyBtn.width / 2;
eEasyBtn.x = stage.stageWidth / 2 - eEasyBtn.width / 2;
easyBtn.y = stage.stageHeight - 200;
vEasyBtn.y = stage.stageHeight - 200 + 30;
eEasyBtn.y = stage.stageHeight - 200 + 60;
restartBtn = new Button("Restart");
addChild(restartBtn);
restartBtn.x = stage.stageWidth / 2 - restartBtn.width / 2;
restartBtn.y = 300;
addEventListener(KeyboardEvent.KEY_UP, keyEventHandler);
killBtn.addEventListener(MouseEvent.CLICK, kill);
releaseBtn.addEventListener(MouseEvent.CLICK, release);
restartBtn.addEventListener(MouseEvent.CLICK, restart);
easyBtn.addEventListener(MouseEvent.CLICK, easy);
vEasyBtn.addEventListener(MouseEvent.CLICK, vEasy);
eEasyBtn.addEventListener(MouseEvent.CLICK, eEasy);
init();
}
private function init():void {
score = 0;
tf.text = "Score = " + score;
bushouArray = ["馬忠", "馬超", "馬岱", "馬良", "馬騰", "馬休", "馬鉄", "馬玩", "馬鈞", "馬茂"];
bushouSelect();
killedNum = 0;
killedNumRyuzen = 0;
message.text = "\n馬謖がまた失敗しました。\n馬謖を泣きながら斬ってください。";
message.visible = true;
gameField.visible = false;
killBtn.visible = false;
releaseBtn.visible = false;
easyBtn.visible = true;
vEasyBtn.visible = true;
eEasyBtn.visible = true;
restartBtn.visible = false;
}
private function gameMain():void {
message.visible = false;
gameField.visible = true;
gameField.text = "\n" + bushou;
killBtn.visible = true;
releaseBtn.visible = true;
easyBtn.visible = false;
vEasyBtn.visible = false;
eEasyBtn.visible = false
restartBtn.visible = false;
}
private function kill(e:MouseEvent):void {
killed();
}
private function release(e:MouseEvent):void {
released();
}
private function restart(e:MouseEvent):void {
init();
}
private function tweenCompleteHandler():void {
}
private function easy(e:MouseEvent):void {
easySelect(10,easyBtn.y,3);
gameMain();
}
private function vEasy(e:MouseEvent):void {
easySelect(20,vEasyBtn.y,10);
gameMain()
}
private function eEasy(e:MouseEvent):void {
easySelect(30,eEasyBtn.y,1000);
gameMain();
}
private function easySelect (numB:int,btnY:Number = 300,numR:int = 0):void {
for (var i:int = 0; i < numB; i++) {
bushouArray.push("馬謖")
}
for (i = 0; i < numR; i++) {
bushouArray.push("劉禅")
}
tformG.size = numB;
gameField.defaultTextFormat = tformG;
killBtn.y = releaseBtn.y = restartBtn.y = btnY;
}
private function killed():void {
if (bushou == "馬謖") {
killedNum++;
score += 100
bushouSelect();
}else if (bushou == "劉禅") {
killedNumRyuzen++;
score += 200;
bushouSelect();
}else {
gameover(bushou);
}
}
private function released():void {
if (bushou != "馬謖" && bushou != "劉禅") {
score += 10;
bushouSelect();
}else {
gameover(bushou);
}
}
private function keyEventHandler(e:KeyboardEvent):void {
switch(e.keyCode) {
case Keyboard.LEFT:
killed();
break;
case Keyboard.RIGHT:
released();
break;
}
}
private function bushouSelect():void {
bushou = bushouArray[Math.floor(bushouArray.length * Math.random())];
gameField.text = "\n" + bushou;
tf.text = "Score = " + score;
}
private function gameover(name:String):void {
if (bushou != "馬謖" && bushou != "劉禅") {
message.text = "\n何故、"+bushou+" を斬ったのですか\n危うく計略が失敗するところでした\n\nちなみに "+killedNum+" 人の馬謖を斬り、\nついうっかり "+killedNumRyuzen+" 人の劉禅を斬りました。";
}else {
message.text = "\n何故、 "+bushou+" を斬らなかったのですか\n危うく計略が失敗するところでした\n\nちなみに "+killedNum+" 人の馬謖を斬り、\nついうっかり "+killedNumRyuzen+" 人の劉禅を斬りました。";
}
message.visible = true;
gameField.visible = false;
killBtn.visible = false;
releaseBtn.visible = false;
restartBtn.visible = true;
//for (var i:int = 0; i < bushouArray.length;i++){
// bushouArray.pop();
//}
//訂正、よく考えたら間違えに気づきました
while (bushouArray.length > 0) {
bushouArray.pop();
}
}
}
}
import flash.display.Sprite;
import flash.text.TextField;
class Button extends Sprite {
public function Button(label:String):void {
graphics.lineStyle(1, 0xBBBBBB);
graphics.beginFill(0xEEEEEE);
graphics.drawRoundRect(0, 0, 100, 20, 10, 10);
graphics.endFill();
mouseChildren = false;
buttonMode = true;
var myField:TextField = new TextField();
myField.height = 20;
myField.width = 100;
myField.htmlText = "<p align='center'><font face='_sans'>" + label + "</span></p>";
addChild(myField);
}
}