forked from: リール回転用2
forked from リール回転用2 (diff: 1)
ActionScript3 source code
/**
* Copyright koshitarou ( http://wonderfl.net/user/koshitarou )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9xc1
*/
// forked from ton_'s リール回転用2
// forked from ton_'s リール回転用
// forked from ton_'s 改 [オブジェクトの再作成]噴水
// forked from ton_'s [オブジェクトの再作成]噴水
// forked from ton_'s 領域外に出たスプライトの削除
package {
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
public class slotPre0 extends Sprite{
//多次元配列の個数
private var i:int;
private var iMax:int = 3;
private var j:int;
private var jMax:int = 5;
//3リール分の重力値
private var gravity:Number=2;
private var g:Array;
//リールストップ用変数
private var k:int = 0;
//多次元配列
private var reels:Array;
//領域の設定
private var top:Number = -150;
private var bottom:Number = 465;
private var left:Number = 50;
private var right:Number =365;
//図柄代わりのボール
private var ball:Ball;
public function slotPre0(){
init();
}
private function init():void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
g= new Array();
for(var a:int=0; a<jMax; a++){
g[a] = gravity;
}
reels = new Array();
for(i=0; i<iMax; i++){
reels[i] = new Array()
for(j=0; j<jMax; j++){
var color:uint = Math.random()*0xff0000;
ball = new Ball(12,color);
ball.x = (right-left)/3*(i+1);
ball.y = (bottom-top)/jMax*j;
ball.vy = 1;
addChild(ball);
reels[i][j] = ball;
}
}
addEventListener(Event.ENTER_FRAME,onEnterFlame);
stage.addEventListener(MouseEvent.CLICK, onMouseClick);
}
private function onEnterFlame(e:Event):void{
for(var x:int =0;x<iMax; x++){
for(var y:int=0; y<jMax; y++){
var reel:Ball = Ball(reels[x][y]);
if(reel.vy<42){
reel.vy+=g[i];
}
reel.y+=reel.vy;
if(reel.y - reel.radius>bottom){
reel.y = top;
}
reels[x][y] = reel;
}
}
}
private function onMouseClick(e:MouseEvent):void{
switch(k){
case 0:
for(j=0; j<jMax; j++){
reels[0][j].vy = 0;
}
g[0] = 0;
k = 1;
break;
case 1:
for(j=0; j<jMax; j++){
reels[1][j].vy = 0;
}
g[1] = 0;
k = 2;
break;
case 2:
for(j=0; j<jMax; j++){
reels[2][j].vy = 0;
}
g[2] = 0;
removeEventListener(Event.ENTER_FRAME,onEnterFlame);
k = 3;
break;
case 3:
for(var a:int=0; a<jMax; a++){
g[a] = gravity;
}
k = 0;
stage.addEventListener(Event.ENTER_FRAME,onEnterFlame);
break;
default:
}
}
}
}
import flash.display.Sprite;
class Ball extends Sprite{
public var radius:Number;
public var color:uint;
public var vx:Number =0;
public var vy:Number =0;
public function Ball(radius:Number = 40,color:uint = 0xff0000){
this.radius = radius;
this.color = color;
init();
}
public function init():void{
graphics.beginFill(color);
graphics.drawCircle(0,0,radius);
graphics.endFill();
}
}
