簡単な数学の方程式を使った泡が画面の上部から落ちてくるゲームを作成しています。特定の泡を消すには、答えを入力する必要があります。唯一の問題は、答えに対応するバブルを削除できるシステムが必要なことです。Actions-FrameコードとmathBubbleASクラスを使用しています。最初にフレームコードを表示します。
stop();
var cooldown:int = 200;
var cooldownMax:int = 200;
inputAnswer.restrict = "^A-Za-z";
addEventListener(Event.ENTER_FRAME, bubbleSpawn);
function bubbleSpawn(e:Event) {
if (cooldown>cooldownMax) {
var bubble = new mathBubble();
addChild(bubble);
bubble.x = Math.round(Math.random()*480);
bubble.y = 0;
cooldown = 0;
}
cooldown += 1;
}
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.text.*;
public class mathBubble extends MovieClip {
var firstInteger:int;
var equationSymbol:int;
var secondInteger:int;
var mathAnswer:int;
var firstSpace:String;
var secondSpace:String;
var mathAnswerString:String;
function mathBubble() {
firstInteger = Math.round(Math.random()*9);
equationSymbol = Math.round(Math.random()*2)+1;
secondInteger = Math.round(Math.random()*9);
trace("bubble spawned");
firstSpace = String(firstInteger);
secondSpace = String(secondInteger);
firstNumber.text = firstSpace;
secondNumber.text = secondSpace;
if (equationSymbol==1) {
mathSymbol.text = "+";
mathAnswer = firstInteger+secondInteger;
mathAnswerString = String(mathAnswer);
trace(mathAnswerString);
}
if (equationSymbol==2) {
mathSymbol.text = "-";
mathAnswer = firstInteger-secondInteger;
mathAnswerString = String(mathAnswer);
trace(mathAnswerString);
}
if (equationSymbol==3) {
mathSymbol.text = "x";
mathAnswer = firstInteger*secondInteger;
mathAnswerString = String(mathAnswer);
trace(mathAnswerString);
}
addEventListener(Event.ENTER_FRAME, bubbleFall);
function bubbleFall(e:Event) {
y += 1;
}
}
}
}
コードを読む必要はありません。配列を使用して、変数「mathAnswer」と「mathAnswerString」を介して各子に含まれるランダム化された回答と同じ回答ですべての子を削除する方法を誰かが説明できるかどうか疑問に思っていました。これがどのように機能するかですが、他に方法がある場合は、そのように言ってください。ここまで読んでいただきありがとうございます。