AS3 で作業を行うのに問題があります。Rand という名前の var があり、この rand が 0 から 10 の間の数値になると、deathdisk が表示されます。rand が 90 ~ 100 になると、キングディスクが表示されます。私が達成したいことは、それらのディスクが 2 回連続して表示されないことです。Boolean で試してみましたが、うまくいきませんでした。それに加えて、「var」ランドが私が言及した数の間にある場合にのみ、王と死のディスクが表示されなければなりません。乱数の外に現れることもあります。誰かがこの問題で私を助けてくれることを願っています。
いくつかの情報:
ディスクはMCとボタンです。この MC ディスクには 8 つのフレームがあり、1 - 6 は通常のディスクで、7 & 8 はキングとデス ディスクです。ディスクをサイコロで比較できます。プレーヤーがディスク ムービークリップを押すと、ランダムなフレームが選択されます。
diskRoll [クラス]:
package {
import flash.display.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.media.*;
public class DiskRoll extends MovieClip
{
//Vars
var diskTilt:Timer = new Timer(1350,1);
//var rand:int = Math.random() * 100;
var rand:int = (Math.random()*(100));
var deathDisk:Boolean = false;
var kinghDisk:Boolean = false;
//Sound Vars
var diskFxChannel:SoundChannel = new SoundChannel();
var diskHitFx:Sound = new diskHitsound();
var diskRollFx:Sound = new diskRollSound();
public function DiskRoll():void
{
this.addEventListener(MouseEvent.MOUSE_DOWN, hitDisk);
diskTilt.addEventListener(TimerEvent.TIMER_COMPLETE, tiltOnComplete);
diskFxChannel = diskRollFx.play();
}
//Disk hit function
private function hitDisk(event:MouseEvent):void{
//Picks random frame after MOUSE_DOWN from Disks Mc [1-8 Frames total]
this.gotoAndStop(Math.ceil(Math.random()* 6));
//Genarate random number calc chances and luck
rand = (Math.random() * (100));
//Disk of death between Random number (block second time)
if(rand >= 90 && rand <=100){
this.gotoAndStop(7);
kinghDisk = true;
}
if(rand >= 0 && rand <=10){
this.gotoAndStop(8);
deathDisk = true;
}
//Disk of death between Random number (block second time)
if(deathDisk == true){
rand = (Math.random() * (100))+11;
}
if(deathDisk == false){
rand = (Math.random() * (100));
}
//KingsDisk Random between number (block second time)
if(kinghDisk == true){
rand = (Math.random() * (89));
}
if(kinghDisk == false){
rand = (Math.random() * (100));
}
//If statements per Disk
if(this.currentFrame == 1){
trace("DiskRoll 1")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 2){
trace("DiskRoll 2")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 3){
trace("DiskRoll 3")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 4 /*&& stage.getChildByName("block") == null*/){
trace("DiskRoll 4")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 5){
trace("DiskRoll 5")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 6){
trace("DiskRoll 6")
deathDisk = false;
kinghDisk = false;
}
if(this.currentFrame == 7){
trace("DiskRoll 7")
deathDisk = false;
kinghDisk = true;
}
if(this.currentFrame == 8){
trace("DiskRoll 8")
deathDisk = true;
kinghDisk = false;
}
trace(rand);
trace(deathDisk);
trace(kinghDisk);
diskFxChannel = diskHitFx.play();
this.removeEventListener(MouseEvent.MOUSE_DOWN, hitDisk);
diskTilt.start();
}
//Deblock Disk (button) Timer
private function tiltOnComplete(event:TimerEvent):void {
this.gotoAndPlay(1);
diskTilt.stop();
this.addEventListener(MouseEvent.MOUSE_DOWN, hitDisk);
diskFxChannel = diskRollFx.play();
}
}
}