73 lines
3 KiB
JavaScript
73 lines
3 KiB
JavaScript
const RoulettePicPath = "pictures/UI_MiniGame/Roulette/";
|
|
var RouletteImgName = "PN_RouletteBase";
|
|
const RouletteBaseX = 100;
|
|
var RouletteRad = 0;
|
|
var RouletteSpeed = 0;
|
|
var RouletteStopFlg = false;
|
|
Game_Interpreter.prototype.Roulette_Start = function () {
|
|
RouletteFlm = 0;
|
|
RouletteRad = 0;
|
|
RouletteSpeed = 0;
|
|
RouletteStopFlame = 0;
|
|
RouletteStopFlg = false;
|
|
this.SetSpriteFIn(PN_RouletteBack , RoulettePicPath + "PN_RouletteBack" , 0 , 0 , 0 , 0 , 15);
|
|
this.SetSpriteFIn(PN_RouletteBase , RoulettePicPath + "PN_RouletteBase" , RouletteBaseX , 0 , 0 , 0 , 15);
|
|
this.SetSpriteFInC(PN_RouletteImg , RoulettePicPath + RouletteImgName , RouletteBaseX + 418 , 337 , 0 , 0 , 15);
|
|
this.SetSpriteFIn(PN_RouletteTop , RoulettePicPath + "PN_RouletteTop" , RouletteBaseX , 0 , 0 , 0 , 15);
|
|
this.SetSpriteFIn(PN_RouletteCk , RoulettePicPath + "PN_RouletteCk" , RouletteBaseX , 0 , 0 , 0 , 15);
|
|
};
|
|
var RouletteFlm = 0;
|
|
var RouletteStopFlame = 0;
|
|
const RouletteMaxSpeed = 15;
|
|
const RouletteMaxSpeedFlm = 120;
|
|
const RouletteStopFlm = 120;
|
|
const VN_手動停止角度 = 1093;
|
|
Game_Interpreter.prototype.Roulette_Update = function () {
|
|
RouletteFlm++;
|
|
let f手動停止角度 = $gameVariables.value(VN_手動停止角度);
|
|
if (!RouletteStopFlg) {
|
|
if (RouletteSpeed < RouletteMaxSpeed)
|
|
RouletteSpeed += RouletteMaxSpeed / RouletteMaxSpeedFlm;
|
|
else
|
|
RouletteSpeed = RouletteMaxSpeed;
|
|
}
|
|
if (TouchInput.isPressed() && RouletteFlm > RouletteMaxSpeedFlm && !RouletteStopFlg) {
|
|
RouletteStopFlg = true;
|
|
}
|
|
if (RouletteStopFlg) {
|
|
RouletteStopFlame++;
|
|
if (RouletteSpeed > 0) {
|
|
RouletteSpeed = RouletteMaxSpeed * ((RouletteStopFlame - RouletteStopFlm) / RouletteStopFlm);
|
|
}
|
|
else {
|
|
RouletteSpeed = 0;
|
|
}
|
|
RouletteSpeed *= -1;
|
|
}
|
|
RouletteRad += RouletteSpeed;
|
|
this.AngleSprite(PN_RouletteImg , RouletteRad);
|
|
let f現在角度 = Math.round(RouletteRad % 360);
|
|
if (f手動停止角度 > 0) {
|
|
if (RouletteStopFlame >= RouletteStopFlm - 3) {
|
|
if (Math.abs(f手動停止角度 - f現在角度) > 3) {
|
|
let fValue = RouletteStopFlm - RouletteStopFlame;
|
|
if (fValue < 5) RouletteStopFlame = RouletteStopFlm - 5;
|
|
} else {
|
|
RouletteStopFlame = RouletteStopFlm + 1;
|
|
}
|
|
}
|
|
}
|
|
if (RouletteStopFlame > RouletteStopFlm) {
|
|
$gameVariables.setValue(VN_ミニゲーム結果 , f現在角度);
|
|
$gameVariables.setValue(VN_手動停止角度 ,0);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
Game_Interpreter.prototype.Roulette_End = function () {
|
|
this.MoveSprite(PN_RouletteBack , true , true , 7 , 0);
|
|
this.MoveSprite(PN_RouletteBase , true , true , 7 , 0);
|
|
this.MoveSprite(PN_RouletteImg , true , true , 7 , 0);
|
|
this.MoveSprite(PN_RouletteTop , true , true , 7 , 0);
|
|
this.MoveSprite(PN_RouletteCk , true , true , 7 , 0);
|
|
}
|