Slot mashine is made in visual-js game engine . Yuo can learn here nice staff about this game engine.
A Pen by VisualJS game engine on CodePen.
| <body style="margin:0;padding:0;border:none;background-color:black;"> | |
| <div id="UPLOAD_BOX" style="display:block" > | |
| </div> | |
| <div id="experiment" style="display:block" > | |
| <video id="webcam" autoplay width="640" height="480" style="display:none;position:absolute;left:0;top:0;"></video> | |
| <canvas id="canvas-blended" width="640" height="480" style="position:absolute;left:0;top:0;display:none;"></canvas> | |
| <canvas id="canvas-render" width="640" height="480" style="position:absolute;left:0;top:0;display:none;"></canvas> | |
| </div> | |
| <canvas tabindex='1' width="1" height="1" id="HELLO_WORLD"></canvas> | |
| <div style="display:block;"> | |
| <!--audio controls id="audio_ambient" > | |
| <source src="http://radio.nessradio.net:8000/nessradio.mp3" type="audio/mpeg"> | |
| <source src="http://radio.nessradio.net:8000/nessradio.ogg" type="audio/ogg"> | |
| </audio--> | |
| </div> | |
| </body> |
| //###############################################//############################################### | |
| //###############################################//############################################### | |
| // USER PART OF CODE | |
| /** | |
| Filename : funny.js | |
| Game Template with Visual JS support | |
| slot prototype 0.1 FUNNY3 DEMO | |
| 2016 | |
| */ | |
| /** | |
| Copyright 2016, [email protected] | |
| All rights reserved. | |
| Redistribution and use in source and binary forms, with or without | |
| modification, are permitted provided that the following conditions are | |
| met: | |
| Leave lib licence header and use it for free even for commercial projects | |
| */ | |
| //###############################################//############################################### | |
| //###############################################//############################################### | |
| /*OPERATION FOE REELS | |
| We have 3 reels | |
| You configure reels with arrays : | |
| SYMBOLS_REEL1 | |
| SYMBOLS_REEL2 | |
| SYMBOLS_REEL3 | |
| RESOURCE.SOME_RES is standard Visual JS resource js object | |
| NOMOBILE == 0 //means mobile devices | |
| NOMOBILE == 1 //means desktop devices | |
| */ | |
| //MAKE ALL BE INVISIBLE | |
| // This is first you will need : | |
| // make surface draws and update functions | |
| SYS.DOM.CREATE_SURFACE("SURF", "HELLO_WORLD", 100, 99.4, "DIAMETRIC"); | |
| //One program have a one engine , engine runs modules | |
| //One modul have a gameobjects , use more modules for composition | |
| HELLO_WORLD.ENGINE.CREATE_MODUL("STARTER"); | |
| HELLO_WORLD.ENGINE.CREATE_MODUL("SLOT"); | |
| HELLO_WORLD.ENGINE.CREATE_MODUL("LOADING"); | |
| var LOADING_MODULE = HELLO_WORLD.ENGINE.MODULES.ACCESS_MODULE('LOADING'); | |
| var SLOT_MODULE = HELLO_WORLD.ENGINE.MODULES.ACCESS_MODULE('SLOT'); | |
| //############################### | |
| //FIX FOR FIDDLE - MAKE RESOURCE PATHS ABSOLUTE | |
| //############################### | |
| RESOURCE.imagesFont1 = { | |
| "source": ["https://maximumroulette.com/framework/res/animations/imagesFont1/letter_A.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_B.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_C.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_D.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_E.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_F.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_G.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_H.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_I.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_J.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_K.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_L.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_M.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_N.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_O.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_P.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_Q.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_R.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_S.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_T.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_U.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_V.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_W.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_X.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_Y.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/letter_Z.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number0.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number1.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number2.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number3.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number4.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number5.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number6.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number7.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number8.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/number9.png", "https://maximumroulette.com/framework/res/animations/imagesFont1/text_plus.png"] | |
| }; | |
| RESOURCE.clouds = { | |
| source: ["https://maximumroulette.com/framework/res/animations/clouds/cloud1.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud2.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud3.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud4.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud5.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud6.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud7.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud8.png", | |
| "https://maximumroulette.com/framework/res/animations/clouds/cloud9.png", | |
| ] | |
| }; | |
| RESOURCE.loadingBlock = { | |
| source: ["https://maximumroulette.com/framework/res/animations/character1/alienBiege_climb1.png", | |
| "https://maximumroulette.com/framework/res/animations/character1/alienBiege_climb2.png" | |
| ] | |
| }; | |
| RESOURCE.character1 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/character1/alienBiege_walk1.png", | |
| "https://maximumroulette.com/framework/res/animations/character1/alienBiege_walk2.png", | |
| "https://maximumroulette.com/framework/res/animations/character1/alienBiege_swim2.png", | |
| "https://maximumroulette.com/framework/res/animations/character1/alienBiege_swim2.png", | |
| ] | |
| }; | |
| RESOURCE.character2 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/character2/alienBlue_front.png", | |
| "https://maximumroulette.com/framework/res/animations/character2/alienBlue_hit.png", | |
| "https://maximumroulette.com/framework/res/animations/character2/alienBlue_hit.png" | |
| ] | |
| }; | |
| RESOURCE.character3 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/character3/alienGreen_walk1.png", | |
| "https://maximumroulette.com/framework/res/animations/character3/alienGreen_walk2.png", | |
| "https://maximumroulette.com/framework/res/animations/character3/alienGreen_stand.png" | |
| ] | |
| }; | |
| RESOURCE.character4 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/character4/alienYellow_walk1.png", | |
| "https://maximumroulette.com/framework/res/animations/character4/alienYellow_walk2.png", | |
| "https://maximumroulette.com/framework/res/animations/character4/alienYellow_duck.png" | |
| ] | |
| }; | |
| RESOURCE.SlotRabit = { | |
| source: ["https://maximumroulette.com/framework/res/animations/SlotRabit/rabbit.png"] | |
| }; | |
| RESOURCE.slotBalance = { | |
| source: ["https://maximumroulette.com/framework/res/animations/slotBalance/balancetable.png"] | |
| }; | |
| RESOURCE.slotBG = { | |
| source: ["https://maximumroulette.com/framework/res/animations/slotBG/castle_grey.png"] | |
| }; | |
| RESOURCE.slotFox = { | |
| source: ["https://maximumroulette.com/framework/res/animations/slotFox/0.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/1.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/2.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/3.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/4.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/5.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/6.png", | |
| "https://maximumroulette.com/framework/res/animations/slotFox/7.png" | |
| ] | |
| }; | |
| RESOURCE.imagesFont1 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/imagesFont1/0.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/1.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/2.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/3.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/4.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/5.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/6.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/7.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/8.png", | |
| "https://maximumroulette.com/framework/res/animations/imagesFont1/9.png" | |
| ] | |
| }; | |
| RESOURCE.numbers2 = { | |
| source: ["https://maximumroulette.com/framework/res/animations/numbers2/text_0.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_1.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_2.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_3.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_4.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_5.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_6.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_7.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_8.png", | |
| "https://maximumroulette.com/framework/res/animations/numbers2/text_9.png" | |
| ] | |
| }; | |
| RESOURCE.SlotSun = { | |
| source: ["https://maximumroulette.com/framework/res/animations/SlotSun/sun1.png"] | |
| }; | |
| RESOURCE.wbutton = { | |
| source: ["https://maximumroulette.com/framework/res/animations/wbutton/sign.png", | |
| "https://maximumroulette.com/framework/res/animations/wbutton/signExit.png", | |
| "https://maximumroulette.com/framework/res/animations/wbutton/signLeft.png", | |
| "https://maximumroulette.com/framework/res/animations/wbutton/signRight.png", | |
| ] | |
| }; | |
| RESOURCE.money_penny = { | |
| source: ["https://maximumroulette.com/framework/res/animations/money_penny/gold_1.png", | |
| "https://maximumroulette.com/framework/res/animations/money_penny/gold_2.png", | |
| "https://maximumroulette.com/framework/res/animations/money_penny/gold_3.png", | |
| "https://maximumroulette.com/framework/res/animations/money_penny/gold_4.png", | |
| ] | |
| }; | |
| AUDIO_RESOURCE.source[0] = "https://maximumroulette.com/framework/res/audio/laser7.ogg"; | |
| AUDIO_RESOURCE.source[1] = "https://maximumroulette.com/framework/res/audio/rabitup.ogg"; | |
| AUDIO_RESOURCE.source[2] = "https://maximumroulette.com/framework/res/audio/spin.ogg"; | |
| AUDIO_RESOURCE.source[3] = "https://maximumroulette.com/framework/res/audio/start_reel1.ogg"; | |
| AUDIO_RESOURCE.source[4] = "https://maximumroulette.com/framework/res/audio/stop.ogg"; | |
| // NO AUDIO IN THIS DEMO | |
| var SLOT_PLAYER = { | |
| BALANCE: 1000, | |
| NICKNAME: "noname", | |
| }; | |
| window['SYMBOLS_REEL1'] = [RESOURCE.character1, RESOURCE.character2, RESOURCE.character3, RESOURCE.character4, RESOURCE.character4, RESOURCE.character4]; | |
| window['SYMBOLS_REEL2'] = [RESOURCE.character1, RESOURCE.character2, RESOURCE.character3, RESOURCE.character4, RESOURCE.character4]; | |
| window['SYMBOLS_REEL3'] = [RESOURCE.character1, RESOURCE.character2, RESOURCE.character3, RESOURCE.character4, RESOURCE.character4, RESOURCE.character4, RESOURCE.character4]; | |
| var SYMBOLS_REEL1_REZ = { | |
| rez: ["character1", "character2", "character3", "character4", "character4", "character4"] | |
| }; | |
| var SYMBOLS_REEL2_REZ = { | |
| rez: ["character1", "character2", "character3", "character4", "character4"] | |
| }; | |
| var SYMBOLS_REEL3_REZ = { | |
| rez: ["character1", "character2", "character3", "character4", "character4", "character4", "character4"] | |
| }; | |
| var WIN_PROCEDURE = null; | |
| var PROCEDURE_SPIN = function() {}; | |
| var character4 = 10, | |
| character3 = 15, | |
| character2 = 50, | |
| character1 = 200; | |
| var REELS_OPTIONS = { | |
| SYMBOL_HEIGHT: 16, | |
| REEL_SPEED: 3.5, | |
| REELS_MARGIN: 1.5, // range 0.1 to 3.0 | |
| REEL1_POSITION_X: 17, | |
| REEL2_POSITION_X: 43, | |
| REEL3_POSITION_X: 69, | |
| REEL1_STOPED: true, // read only for you | |
| REEL2_STOPED: true, // read only for you | |
| REEL3_STOPED: true, // read only for you | |
| REEL_MAX_Y: 70 + 2, // read only for you | |
| TOP: 0, // read only for you | |
| }; | |
| CLONE_TOP1 = 0; | |
| CLONE_TOP2 = 0; | |
| CLONE_TOP3 = 0; | |
| var RESULTS = { | |
| R1: 1, | |
| R2: 1, | |
| R3: 1 | |
| }; | |
| var SPIN_STOP; | |
| var SLOT_MASHINE = { | |
| BET_VALUE: { | |
| VALUE: 1, | |
| MIN: 1, | |
| MAX: 9, | |
| }, | |
| SPIN: false, | |
| STOP_ON_RESULT: false, | |
| }; | |
| CONFIGURE_SLOT_FROM_SERVER_or_LOCAL() | |
| function CALCULATOR(spin, BET) { | |
| var win = 0; | |
| var rez1 = SYS.MATH.RANDOM_INT_FROM_TO(0, SYMBOLS_REEL1.length - 1) | |
| var rez2 = SYS.MATH.RANDOM_INT_FROM_TO(0, SYMBOLS_REEL2.length - 1) | |
| var rez3 = SYS.MATH.RANDOM_INT_FROM_TO(0, SYMBOLS_REEL3.length - 1) | |
| if ((SYMBOLS_REEL1_REZ.rez[rez1].toString() == SYMBOLS_REEL2_REZ.rez[rez2].toString()) && (SYMBOLS_REEL1_REZ.rez[rez1].toString() == SYMBOLS_REEL3_REZ.rez[rez3].toString())) { | |
| eval(" win = " + SYMBOLS_REEL1_REZ.rez[rez1] + " * BET; "); | |
| console.log("WINNIG COMBINATION ! reel id:", rez1, " BET : ", BET); | |
| console.log("WINNIG COMBINATION : for :", rez1, " BET : ", BET, " WIN IS :", win); | |
| } else { | |
| win = 0; | |
| } | |
| if (typeof rez1 != "undefined" && typeof rez2 != "undefined" && typeof rez3 != "undefined") { | |
| SYS.DEBUG.LOG("SPIN r1 :", rez1, rez2, rez3); | |
| RESULTS.R1 = rez1; | |
| RESULTS.R2 = rez2; | |
| RESULTS.R3 = rez3; | |
| RESULTS.WIN = win; | |
| var win = win; | |
| setTimeout(function() { | |
| SPIN_STOP(win) | |
| }, 4000); | |
| } else { | |
| SYS.DEBUG.WARRING("server data empty or something very wrong!"); | |
| } | |
| } | |
| /* If you wanna do slot configuration from server | |
| first clean : | |
| var SYMBOLS_REEL1=[]; | |
| var SYMBOLS_REEL2=[]; | |
| var SYMBOLS_REEL3=[]; | |
| var GAME_SERVER = io.connect('http://'+APPLICATION.LOCAL_SERVER+':12001'); | |
| GAME_SERVER.on('connect', function(){ | |
| console.log("CONNECTED WITH FUNNYSLOT GAME SERVER!" ); | |
| console.log("Get data about slot from GAME SERVER" ); | |
| GAME_SERVER.emit("I_WANT" , "FUNNYSLOT1" ); | |
| GAME_SERVER.on('CONFIG_REELS', function (r1,r2,r3) { | |
| SYS.DEBUG.WARNING("CONFIG SLOT DATA: REEL 1 : " + r1.rez.length + " REEL2 " + r2.rez + " REEL3 " + r3.rez ); | |
| for (var x = 0; x < r1.rez.length;x++){ | |
| eval( 'SYMBOLS_REEL1.push( RESOURCE.'+r1.rez[x]+');'); | |
| } | |
| for (var x = 0; x < r2.rez.length;x++){ | |
| eval( 'SYMBOLS_REEL2.push(RESOURCE.'+r2.rez[x]+');'); | |
| } | |
| for (var x = 0; x < r3.rez.length;x++){ | |
| eval( 'SYMBOLS_REEL3.push(RESOURCE.'+r3.rez[x]+');'); | |
| } | |
| CONFIGURE_SLOT_FROM_SERVER_or_LOCAL () | |
| }); | |
| GAME_SERVER.on('COMBINATION', function ( r1 , r2 , r3 , win) { | |
| if (typeof r1 != "undefined" && typeof r2 != "undefined" && typeof r3 != "undefined" ) { | |
| SYS.DEBUG.LOG("SPIN r1 :" , r1 , r2 , r3 ); | |
| RESULTS.R1 = r1; | |
| RESULTS.R2 = r2; | |
| RESULTS.R3 = r3; | |
| RESULTS.WIN = win; | |
| var win = win; | |
| setTimeout(function(){ | |
| SPIN_STOP(win) | |
| },4000); | |
| }else{ | |
| SYS.DEBUG.WARRING("server data empty or something very wrong!"); | |
| } | |
| }); | |
| }); | |
| */ | |
| // CHANGE PROGRAM ROOT NAME (canvas name) | |
| HELLO_WORLD.ENGINE.KEYBOARD.ACTION_ON_KEY_DOWN = function() { | |
| if (this.LAST_CAPTURE_CHAR == " ") { | |
| //SPACE WAS PRESSED | |
| PROCEDURE_SPIN() | |
| } | |
| }; | |
| function CONFIGURE_SLOT_FROM_SERVER_or_LOCAL() { | |
| PROCEDURE_SPIN = function() { | |
| if (SLOT_MASHINE.SPIN == false) { | |
| REELS_OPTIONS.REEL1_STOPED = false; | |
| REELS_OPTIONS.REEL2_STOPED = false; | |
| REELS_OPTIONS.REEL3_STOPED = false; | |
| //client side done ; remove this if you wanna set this on server for profesional game | |
| SET_BALANCE(SLOT_PLAYER.BALANCE - SLOT_MASHINE.BET_VALUE.VALUE); | |
| //GAME_SERVER.emit("SPIN" , SLOT_MASHINE.BET_VALUE.VALUE ); | |
| CALCULATOR("SPIN", SLOT_MASHINE.BET_VALUE.VALUE); | |
| SLOT_MASHINE.SPIN = true; | |
| symbol10.POSITION.SET_SPEED(0.25); | |
| Csymbol10.POSITION.SET_SPEED(0.25); | |
| symbol20.POSITION.SET_SPEED(0.25); | |
| Csymbol20.POSITION.SET_SPEED(0.25); | |
| symbol30.POSITION.SET_SPEED(0.25); | |
| Csymbol30.POSITION.SET_SPEED(0.25); | |
| symbol10.POSITION.TRANSLATE_BY_Y(-1000); | |
| Csymbol10.POSITION.TRANSLATE_BY_Y(-1000); | |
| setTimeout(function() { | |
| symbol20.POSITION.TRANSLATE_BY_Y(-1000); | |
| Csymbol20.POSITION.TRANSLATE_BY_Y(-1000); | |
| setTimeout(function() { | |
| symbol30.POSITION.TRANSLATE_BY_Y(-1000); | |
| Csymbol30.POSITION.TRANSLATE_BY_Y(-1000); | |
| }, 200); | |
| }, 200); | |
| // audio_object_start_reel1.play() | |
| setTimeout(function() { | |
| setNormalSpeed(1); | |
| symbol10.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| Csymbol10.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| }, 1000); | |
| setTimeout(function() { | |
| //audio_object_start_reel2.play() | |
| setNormalSpeed(2); | |
| symbol20.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| Csymbol20.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| }, 1200); | |
| setTimeout(function() { | |
| //audio_object_start_reel3.play() | |
| //audio_object_spin.play() | |
| setNormalSpeed(3); | |
| symbol30.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| Csymbol30.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| }, 1400); | |
| } | |
| }; | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| /* //If you wanna local setup make it here | |
| //var | |
| SYMBOLS_REEL1 = [ RESOURCE.characterPink , RESOURCE.character1 , RESOURCE.character2 , RESOURCE.character1 ]; | |
| //var | |
| SYMBOLS_REEL2 = [ RESOURCE.characterPink , RESOURCE.character1 , RESOURCE.character2 , RESOURCE.character1 ]; | |
| //var | |
| SYMBOLS_REEL3 = [ RESOURCE.characterPink , RESOURCE.character1 , RESOURCE.character2 , RESOURCE.character1 ]; | |
| */ | |
| function CREATE_REEL(modulname, SYMBOLS_RES, REEL_ID, HEIGHT_OF_SYMBOL, _X) { | |
| var SYMBOLS = SYMBOLS_RES; | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| for (var r = 0; r < SYMBOLS_RES.length; r++) { | |
| var TOP = 18.5 + (r * (HEIGHT_OF_SYMBOL + REELS_OPTIONS.REELS_MARGIN)); | |
| var local_id_generator = 1243 + SYS.MATH.RANDOM_INT_FROM_TO(10, 10000); | |
| local_id_generator += r; | |
| HELLO_WORLD.ENGINE.MODULES.ACCESS_MODULE(modulname).NEW_OBJECT('symbol' + REEL_ID + r, _X, TOP, 13.5, HEIGHT_OF_SYMBOL); | |
| if (r == 0) { | |
| window["symbol" + REEL_ID + "0"].IA_FIRST_IN_REEL = true; | |
| REELS_OPTIONS.TOP = TOP; | |
| } else { | |
| window["symbol" + REEL_ID + "0"].GROUP.ADD(window["symbol" + REEL_ID + r].NAME); | |
| } | |
| window["symbol" + REEL_ID + r].CREATE_ANIMATION(SURF, 'DRAW_FRAME', 2, SYMBOLS_RES[r], local_id_generator, 'no', 1, 11, 1, 1, 1); | |
| window["symbol" + REEL_ID + r].DRAG = false; | |
| } | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| //clone | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| var startPositionForClone = HEIGHT_OF_SYMBOL * SYMBOLS_RES.length + (REELS_OPTIONS.REELS_MARGIN * (SYMBOLS_RES.length)); | |
| for (var r = 0; r < SYMBOLS_RES.length; r++) { | |
| var TOP = 18.5 + (r * (HEIGHT_OF_SYMBOL + REELS_OPTIONS.REELS_MARGIN)); | |
| var local_id_generator = 5687; | |
| local_id_generator += r; | |
| HELLO_WORLD.ENGINE.MODULES.ACCESS_MODULE(modulname).NEW_OBJECT('Csymbol' + REEL_ID + r, _X, TOP - startPositionForClone, 13.5, HEIGHT_OF_SYMBOL); | |
| if (r == 0) { | |
| window["Csymbol" + REEL_ID + "0"].IA_FIRST_IN_REEL = true; | |
| window["CLONE_TOP" + REEL_ID] = TOP - startPositionForClone; | |
| } else { | |
| window["Csymbol" + REEL_ID + "0"].GROUP.ADD(window["Csymbol" + REEL_ID + r].NAME); | |
| } | |
| window["Csymbol" + REEL_ID + r].CREATE_ANIMATION(SURF, 'DRAW_FRAME', 2, SYMBOLS_RES[r], local_id_generator, 'no', 1, 11, 1, 1, 1); | |
| window["Csymbol" + REEL_ID + r].DRAG = false; | |
| } | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| } | |
| // CREATE SYMBOLS OBJECTS | |
| CREATE_REEL("SLOT", SYMBOLS_REEL1, 1, REELS_OPTIONS.SYMBOL_HEIGHT, REELS_OPTIONS.REEL1_POSITION_X) | |
| CREATE_REEL("SLOT", SYMBOLS_REEL2, 2, REELS_OPTIONS.SYMBOL_HEIGHT, REELS_OPTIONS.REEL2_POSITION_X) | |
| CREATE_REEL("SLOT", SYMBOLS_REEL3, 3, REELS_OPTIONS.SYMBOL_HEIGHT, REELS_OPTIONS.REEL3_POSITION_X) | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ | |
| //BACKGROUND | |
| SLOT_MODULE.NEW_OBJECT('background', 0, 0, 100, 100); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('background').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 0, RESOURCE.slotBG, 171398232226547041, 'no', 1, 11, 1, 1, 1); | |
| background.DRAG = false; | |
| // RABIT | |
| SLOT_MODULE.NEW_OBJECT('RABIT', REELS_OPTIONS.REEL1_POSITION_X + 5, 85.4, 7, 9); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('RABIT').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 0, RESOURCE.SlotRabit, 23355634344265254656, 'no', 1, 11, 1, 1, 1); | |
| //FOX | |
| SLOT_MODULE.NEW_OBJECT('FOX', 120, 89, 12, 12); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('FOX').CREATE_ANIMATION(SURF, 'LOOP', 0, RESOURCE.slotFox, 12121212121223333, 'no', 1, 11, 1, 1, 1); | |
| FOX.POSITION.thrust = 0.5; | |
| FOX.POSITION.TRANSLATE_BY_X(-50); | |
| // audio_object_rabithide.play() | |
| RABIT.POSITION.TRANSLATE(REELS_OPTIONS.REEL1_POSITION_X + 3, 120); | |
| FOX.POSITION.ON_TARGET_POSITION = function() { | |
| FOX.POSITION.SET_POSITION(120, 83, "DIAMETRIC"); | |
| // audio_object_rabitup.play() | |
| RABIT.POSITION.TRANSLATE(REELS_OPTIONS.REEL1_POSITION_X + 3, 77); | |
| setTimeout(function() { | |
| // audio_object_rabithide.play() | |
| RABIT.POSITION.TRANSLATE(REELS_OPTIONS.REEL1_POSITION_X + 5, 120); | |
| FOX.POSITION.TRANSLATE_BY_X(-50); | |
| }, 10000); | |
| }; | |
| // SUN | |
| SLOT_MODULE.NEW_OBJECT('sun', 2, 1, 8, 8); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('sun').CREATE_ANIMATION(SURF, 'LOOP', 1, RESOURCE.SlotSun, 78657856, 'no', 1, 11, 1, 10, 1); | |
| sun.DIMENSION.HEIGHT = sun.DIMENSION.WIDTH; | |
| sun.DRAG = false; | |
| sun.ROTATE_DIRECTION = 'left'; | |
| sun.ON_UPDATE = function() { | |
| if (sun.ROTATE_DIRECTION == 'left') { | |
| if (sun.ANIMATION.ROTATE.ANGLE > 180) { | |
| sun.ROTATE_DIRECTION = 'right'; | |
| } | |
| sun.ANIMATION.ROTATE.ANGLE++; | |
| } else { | |
| if (sun.ANIMATION.ROTATE.ANGLE < -180) { | |
| sun.ROTATE_DIRECTION = 'left'; | |
| } | |
| sun.ANIMATION.ROTATE.ANGLE--; | |
| } | |
| }; | |
| //CLOUDS | |
| SLOT_MODULE.NEW_OBJECT('clouds1', 2.26, 8.62, 17, 16); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('clouds1').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 1, RESOURCE.clouds, 171398232226547221, 'no', 1, 11, 1, 1, 1); | |
| var cloud1_movementX = new OSCILLATOR(-20, 120, 0.1); | |
| var cloud1_movementY = new OSCILLATOR(-5, 0, 0.05); | |
| clouds1.ON_UPDATE = function() { | |
| this.POSITION.TRANSLATE_BY_X(cloud1_movementX.UPDATE()) | |
| this.POSITION.TRANSLATE_BY_Y(cloud1_movementY.UPDATE()) | |
| }; | |
| SLOT_MODULE.NEW_OBJECT('clouds2', 12.26, 8.62, 17, 16); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('clouds2').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 3, RESOURCE.clouds, 171398232226547221, 'no', 1, 11, 1, 1, 1); | |
| var cloud2_movementX = new OSCILLATOR(20, 90, 0.06); | |
| var cloud2_movementY = new OSCILLATOR(-5, 0, 0.08); | |
| clouds2.ON_UPDATE = function() { | |
| this.POSITION.TRANSLATE_BY_X(cloud2_movementX.UPDATE()) | |
| this.POSITION.TRANSLATE_BY_Y(cloud2_movementY.UPDATE()) | |
| }; | |
| ///////////////////// | |
| //Mobile optimezer | |
| //////////////////// | |
| if (NOMOBILE == 1) { | |
| SLOT_MODULE.NEW_OBJECT('clouds3', 12.26, 8.62, 17, 16); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('clouds3').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 2, RESOURCE.clouds, 171398232226547221, 'no', 1, 11, 1, 1, 1); | |
| var cloud3_movementX = new OSCILLATOR(0, 95, 0.09); | |
| var cloud3_movementY = new OSCILLATOR(-15, 0, 0.01); | |
| clouds3.ON_UPDATE = function() { | |
| this.POSITION.TRANSLATE_BY_X(cloud3_movementX.UPDATE()) | |
| this.POSITION.TRANSLATE_BY_Y(cloud3_movementY.UPDATE()) | |
| }; | |
| SLOT_MODULE.NEW_OBJECT('clouds4', 92.26, 8.62, 17, 16); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('clouds4').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 2, RESOURCE.clouds, 171398232226547221, 'no', 1, 11, 1, 1, 1); | |
| var cloud4_movementX = new OSCILLATOR(0, 100, 0.1); | |
| var cloud4_movementY = new OSCILLATOR(-15, 0, 0.02); | |
| cloud4_movementX.value = 92; | |
| clouds4.ON_UPDATE = function() { | |
| this.POSITION.TRANSLATE_BY_X(cloud4_movementX.UPDATE()) | |
| this.POSITION.TRANSLATE_BY_Y(cloud4_movementY.UPDATE()) | |
| }; | |
| } | |
| //Buttons | |
| SLOT_MODULE.NEW_OBJECT('BET', 12, 83.5, 14, 16); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('BET').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 0, RESOURCE.wbutton, 171222132226547221, 'no', 1, 11, 1, 1, 1); | |
| BET.DRAG = false; | |
| SLOT_MODULE.NEW_OBJECT('BET_MINUS', 0, 87, 13, 13); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('BET_MINUS').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 3, RESOURCE.wbutton, 171277732226547221, 'no', 1, 11, 1, 1, 1); | |
| BET_MINUS.DRAG = false; | |
| SLOT_MODULE.NEW_OBJECT('BET_PLUS', 25.2, 87, 13, 13); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('BET_PLUS').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 4, RESOURCE.wbutton, 171222156726547221, 'no', 1, 11, 1, 1, 1); | |
| BET_PLUS.DRAG = false; | |
| BET_PLUS.TAP = function() { | |
| if (SLOT_MASHINE.BET_VALUE.VALUE + 1 <= SLOT_MASHINE.BET_VALUE.MAX) { | |
| SLOT_MASHINE.BET_VALUE.VALUE++; | |
| BET_VALUE.ANIMATION.CURRENT_FRAME = SLOT_MASHINE.BET_VALUE.VALUE; | |
| } | |
| //audio_object_bet_btns.play(); | |
| BET_PLUS.ANIMATION.ROTATE.ANGLE = 5; | |
| setTimeout(function() { | |
| BET_PLUS.ANIMATION.ROTATE.ANGLE = 0; | |
| }, 250); | |
| }; | |
| BET_MINUS.TAP = function() { | |
| if (SLOT_MASHINE.BET_VALUE.VALUE - 1 >= SLOT_MASHINE.BET_VALUE.MIN) { | |
| SLOT_MASHINE.BET_VALUE.VALUE--; | |
| BET_VALUE.ANIMATION.CURRENT_FRAME = SLOT_MASHINE.BET_VALUE.VALUE; | |
| } | |
| //audio_object_bet_btns.play(); | |
| BET_MINUS.ANIMATION.ROTATE.ANGLE = -5; | |
| setTimeout(function() { | |
| BET_MINUS.ANIMATION.ROTATE.ANGLE = 0; | |
| }, 250); | |
| }; | |
| var ROT15 = new OSCILLATOR(-10, 10, 1); | |
| SLOT_MODULE.NEW_OBJECT('BET_VALUE', 20.8, 87, 3.8, 5.1); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('BET_VALUE').CREATE_ANIMATION(SURF, 'DRAW_FRAME', SLOT_MASHINE.BET_VALUE.VALUE, RESOURCE.numbers2, 123451345, 'no', 1, 11, 1, 1, 1); | |
| BET_VALUE.DRAG = false; | |
| BET.TOUCH_MOVE = function() { | |
| if (BET.EFFECTS.ZOOM.STATUS_FOR_IN == false && BET.EFFECTS.ZOOM.STATUS_FOR_OUT == false) { | |
| this.EFFECTS.ZOOM.VALUE = 0.29; | |
| this.EFFECTS.ZOOM.IN(80) | |
| BET.EFFECTS.ZOOM.ZOOM_IN_FINISHED = function() { | |
| BET.EFFECTS.ZOOM.OUT(90) | |
| }; | |
| } | |
| BET_VALUE.ANIMATION.ROTATE.ANGLE = ROT15.UPDATE(); | |
| }; | |
| //ORBIT MOVEMNET | |
| var MONEY_orbitX = new OSCILLATOR(-10, 10, 0.2); | |
| var MONEY_orbitY = new OSCILLATOR(-10, 10, 0.2); | |
| MONEY_orbitY.value = 0; | |
| var MONEY_SIZE_EFFECT = new OSCILLATOR(50, 200, 5); | |
| var MONEY_SIZE_EFFECT2 = new OSCILLATOR(40, 100, 5); | |
| SLOT_MODULE.NEW_OBJECT('MONEY_WIN', -38.8, 46.4, 15, 15); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('MONEY_WIN').CREATE_ANIMATION(SURF, 'LOOP', 1, RESOURCE.money_penny, 1212121, 'no', 1, 11, 1, 1, 1); | |
| MONEY_WIN.CREATE_PARTICLE('FONTAN'); | |
| ///////////////////// | |
| //Mobile optimezer | |
| //////////////////// | |
| if (NOMOBILE == 1) { | |
| SLOT_MODULE.NEW_OBJECT('MONEY_WIN2', -38.8, -46.4, 15, 15); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('MONEY_WIN2').CREATE_ANIMATION(SURF, 'LOOP', 1, RESOURCE.money_penny, 1212121, 'no', 1, 11, 1, 1, 1); | |
| MONEY_WIN2.CREATE_PARTICLE('FONTAN'); | |
| // SLOT_MODULE.NEW_OBJECT('MONEY_WIN3', 138.8 , 46.4 ,15,15); | |
| // SLOT_MODULE.GAME_OBJECTS.ACCESS('MONEY_WIN3').CREATE_ANIMATION( SURF , 'LOOP' , 1 , RESOURCE.money_penny , 1212121 , 'no' , 1,11,1,1,1); | |
| // MONEY_WIN3.CREATE_PARTICLE('FONTAN'); | |
| MONEY_WIN.PARTICLE.settings.bounceLevel = VIEW.H(100); | |
| MONEY_WIN2.PARTICLE.settings.bounceLevel = VIEW.H(99); | |
| // MONEY_WIN3.PARTICLE.settings.bounceLevel = VIEW.H(98); | |
| MONEY_WIN.PARTICLE.settings.density = 1; | |
| MONEY_WIN2.PARTICLE.settings.density = 1; | |
| } | |
| //bet value btns | |
| SLOT_MODULE.NEW_OBJECT('Wchar', -84.8, 46.4, 15, 15); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('Wchar').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 1, RESOURCE.imagesFont1, 1713221226547221, 'no', 1, 11, 1, 1, 1); | |
| SLOT_MODULE.NEW_OBJECT('Ichar', -96.8, 36, 15, 15); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('Ichar').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 4, RESOURCE.imagesFont1, 17132212321221, 'no', 1, 11, 1, 1, 1); | |
| SLOT_MODULE.NEW_OBJECT('Nchar', -108.8, 46.4, 15, 15); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('Nchar').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 16, RESOURCE.imagesFont1, 1713221212221, 'no', 1, 11, 1, 1, 1); | |
| Wchar.DRAG = false; | |
| Ichar.DRAG = false; | |
| Nchar.DRAG = false; | |
| if (NOMOBILE == 0) { | |
| Wchar.POSITION.SET_SPEED(4) | |
| Ichar.POSITION.SET_SPEED(4) | |
| Nchar.POSITION.SET_SPEED(4) | |
| } | |
| Wchar.ON_UPDATE = function() { | |
| }; | |
| function setupChars(obj_, indexFrame, wh, ATACH) { | |
| if (wh) { | |
| obj_.DIMENSION.WIDTH = obj_.DIMENSION.HEIGHT; | |
| } else { | |
| obj_.DIMENSION.HEIGHT = obj_.DIMENSION.WIDTH; | |
| } | |
| if (typeof ATACH !== 'undefined') { | |
| obj_.TAP = ATACH; | |
| } | |
| if (indexFrame == "A") { | |
| obj_.ANIMATION.CURRENT_FRAME = 0; | |
| } else if (indexFrame == "B") { | |
| obj_.ANIMATION.CURRENT_FRAME = 1; | |
| } else if (indexFrame == "C") { | |
| obj_.ANIMATION.CURRENT_FRAME = 2; | |
| } else if (indexFrame == "D") { | |
| obj_.ANIMATION.CURRENT_FRAME = 3; | |
| } else if (indexFrame == "E") { | |
| obj_.ANIMATION.CURRENT_FRAME = 4; | |
| } else if (indexFrame == "F") { | |
| obj_.ANIMATION.CURRENT_FRAME = 5; | |
| } else if (indexFrame == "G") { | |
| obj_.ANIMATION.CURRENT_FRAME = 6; | |
| } else if (indexFrame == "H") { | |
| obj_.ANIMATION.CURRENT_FRAME = 7; | |
| } else if (indexFrame == "I") { | |
| obj_.ANIMATION.CURRENT_FRAME = 8; | |
| } else if (indexFrame == "J") { | |
| obj_.ANIMATION.CURRENT_FRAME = 9; | |
| } else if (indexFrame == "K") { | |
| obj_.ANIMATION.CURRENT_FRAME = 10; | |
| } else if (indexFrame == "L") { | |
| obj_.ANIMATION.CURRENT_FRAME = 11; | |
| } else if (indexFrame == "M") { | |
| obj_.ANIMATION.CURRENT_FRAME = 12; | |
| } else if (indexFrame == "N") { | |
| obj_.ANIMATION.CURRENT_FRAME = 13; | |
| } else if (indexFrame == "O") { | |
| obj_.ANIMATION.CURRENT_FRAME = 14; | |
| } else if (indexFrame == "P") { | |
| obj_.ANIMATION.CURRENT_FRAME = 15; | |
| } else if (indexFrame == "Q") { | |
| obj_.ANIMATION.CURRENT_FRAME = 16; | |
| } else if (indexFrame == "R") { | |
| obj_.ANIMATION.CURRENT_FRAME = 17; | |
| } else if (indexFrame == "S") { | |
| obj_.ANIMATION.CURRENT_FRAME = 18; | |
| } else if (indexFrame == "T") { | |
| obj_.ANIMATION.CURRENT_FRAME = 19; | |
| } else if (indexFrame == "U") { | |
| obj_.ANIMATION.CURRENT_FRAME = 20; | |
| } else if (indexFrame == "V") { | |
| obj_.ANIMATION.CURRENT_FRAME = 21; | |
| } else if (indexFrame == "W") { | |
| obj_.ANIMATION.CURRENT_FRAME = 22; | |
| } else if (indexFrame == "X") { | |
| obj_.ANIMATION.CURRENT_FRAME = 23; | |
| } else if (indexFrame == "Y") { | |
| obj_.ANIMATION.CURRENT_FRAME = 24; | |
| } else if (indexFrame == "Z") { | |
| obj_.ANIMATION.CURRENT_FRAME = 25; | |
| } else if (indexFrame == "plus") { | |
| obj_.ANIMATION.CURRENT_FRAME = 26; | |
| } | |
| } | |
| // obj_.ANIMATION.CURRENT_FRAME = indexFrame; | |
| /* for (var s = 0; s<RESOURCE.imagesFont1.source.length;s++){ | |
| console.log(s + ":" + RESOURCE.imagesFont1.source[s] ) | |
| } | |
| */ | |
| setupChars(Wchar, "W"); | |
| setupChars(Ichar, "I"); | |
| setupChars(Nchar, "N"); | |
| ///////////////////// | |
| //Mobile optimezer | |
| //////////////////// | |
| if (NOMOBILE == 1) { | |
| } | |
| // SPIN | |
| SLOT_MODULE.NEW_OBJECT('char1', 65, 83, 15, 12); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('char1').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 15, RESOURCE.imagesFont1, 1713221232226547221, 'no', 1, 11, 1, 1, 1); | |
| SLOT_MODULE.NEW_OBJECT('char2', 71, 83, 15, 12); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('char2').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 15, RESOURCE.imagesFont1, 1713221232226547221, 'no', 1, 11, 1, 1, 1); | |
| SLOT_MODULE.NEW_OBJECT('char3', 77, 83, 15, 12); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('char3').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 16, RESOURCE.imagesFont1, 1713221232226547221, 'no', 1, 11, 1, 1, 1); | |
| SLOT_MODULE.NEW_OBJECT('char4', 83, 83, 15, 12); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('char4').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 11, RESOURCE.imagesFont1, 1713221232226547221, 'no', 1, 11, 1, 1, 1); | |
| char1.TOUCH_MOVE = function() { | |
| char1.ANIMATION.ROTATE.ANGLE = ROT15.UPDATE(); | |
| }; | |
| char2.TOUCH_MOVE = function() { | |
| char2.ANIMATION.ROTATE.ANGLE = ROT15.UPDATE(); | |
| }; | |
| char3.TOUCH_MOVE = function() { | |
| char3.ANIMATION.ROTATE.ANGLE = ROT15.UPDATE(); | |
| }; | |
| char4.TOUCH_MOVE = function() { | |
| char4.ANIMATION.ROTATE.ANGLE = ROT15.UPDATE(); | |
| }; | |
| setupChars(char1, "S", true, PROCEDURE_SPIN); | |
| setupChars(char2, "P", true, PROCEDURE_SPIN); | |
| setupChars(char3, "I", true, PROCEDURE_SPIN); | |
| setupChars(char4, "N", true, PROCEDURE_SPIN); | |
| function setNormalSpeed(index) { | |
| eval("var n = symbol" + index + "0.POSITION.SET_SPEED(REELS_OPTIONS.REEL_SPEED);"); | |
| eval("var n = Csymbol" + index + "0.POSITION.SET_SPEED(REELS_OPTIONS.REEL_SPEED);"); | |
| } | |
| setNormalSpeed(1) | |
| setNormalSpeed(2) | |
| setNormalSpeed(3) | |
| function MEHANIC(OBJ, index) { | |
| var index = index; | |
| OBJ.POSITION.BAYPASS_FIRST = true; | |
| OBJ.POSITION.ON_TARGET_POSITION = function() { | |
| if (OBJ.POSITION.BAYPASS_FIRST == true) { | |
| OBJ.POSITION.BAYPASS_FIRST = false; | |
| } else { | |
| var NEW_LOCATION = window["CLONE_TOP" + index] - ((window["SYMBOLS_REEL" + index].length - 3) * (REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN)); | |
| eval(" OBJ.POSITION.SET_POSITION( REELS_OPTIONS.REEL" + index + "_POSITION_X , NEW_LOCATION , 'DIAMETRIC'); "); | |
| OBJ.POSITION.TRANSLATE_BY_Y(REELS_OPTIONS.REEL_MAX_Y); | |
| if (OBJ == Csymbol10) { | |
| console.log("CLONE JE POMEREN"); | |
| } | |
| } | |
| }; | |
| } | |
| //start up position | |
| MEHANIC(symbol10, 1) | |
| MEHANIC(Csymbol10, 1) | |
| MEHANIC(symbol20, 2) | |
| MEHANIC(Csymbol20, 2) | |
| MEHANIC(symbol30, 3) | |
| MEHANIC(Csymbol30, 3) | |
| //BALANCE | |
| SLOT_MODULE.NEW_OBJECT('balance_Table', 42, 85, 13, 14); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('balance_Table').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 0, RESOURCE.slotBalance, 234234234, 'no', 1, 11, 1, 1, 1); | |
| balance_Table.CREATE_TEXTBOX(SLOT_PLAYER.BALANCE, 2, "#000000", "white") | |
| balance_Table.TEXTBOX.font = "44px Verdana"; | |
| balance_Table.TEXTBOX.textBaseline = 'middle'; | |
| balance_Table.DRAG = false; | |
| balance_Table.TYPE_OF_GAME_OBJECT = "ANIMATION_TEXT_BOX"; | |
| balance_Table.TEXTBOX.BACKGROUND_OPACITY = 0; | |
| balance_Table.ON_UPDATE = function() { | |
| try { | |
| if (VIEW.H() > 1000) { | |
| balance_Table.TEXTBOX.font = "54px Verdana"; | |
| } else if (VIEW.H() > 600) { | |
| balance_Table.TEXTBOX.font = "44px Verdana"; | |
| } else if (VIEW.H() > 360) { | |
| balance_Table.TEXTBOX.font = "24px Verdana"; | |
| } else { | |
| balance_Table.TEXTBOX.font = "20px Verdana"; | |
| } | |
| } catch (e) {} | |
| }; | |
| SET_BALANCE = function(newB, win_show) { | |
| SLOT_PLAYER.BALANCE = newB; | |
| balance_Table.TEXTBOX.TEXT = SLOT_PLAYER.BALANCE; | |
| if (typeof win_show != 'undefined') { | |
| win_sum.TEXTBOX.TEXT = "WIN \n" + RESULTS.WIN; | |
| win_sum.TYPE_OF_GAME_OBJECT = "ANIMATION_TEXT_BOX"; | |
| } | |
| }; | |
| //win | |
| SLOT_MODULE.NEW_OBJECT('win_sum', 40, 65, 15, 19); | |
| SLOT_MODULE.GAME_OBJECTS.ACCESS('win_sum').CREATE_ANIMATION(SURF, 'DRAW_FRAME', 0, RESOURCE.slotBalance, 456456456456, 'no', 1, 11, 1, 1, 1); | |
| win_sum.CREATE_TEXTBOX("0", 2, "#000000", "white") | |
| win_sum.TEXTBOX.font = "34px Verdana"; | |
| win_sum.TEXTBOX.textBaseline = 'middle'; | |
| win_sum.DRAG = false; | |
| win_sum.TYPE_OF_GAME_OBJECT = "NO_RENDER"; | |
| win_sum.TEXTBOX.BACKGROUND_OPACITY = 0; | |
| //SLOT_MODULE.NEW_OBJECT('LOAD_BLOCK4', 50 , 50 , 50 ,50); | |
| window["IS_IT_LOADED_ALL"] = function() { | |
| setTimeout(function() { | |
| if (SYS.RES.SUM_OF_LOADED_IMAGES > 909) { | |
| CREATE_LOADING_BLOCKS(true); | |
| } else { | |
| IS_IT_LOADED_ALL() | |
| } | |
| }, 250); | |
| } | |
| IS_IT_LOADED_ALL() | |
| SPIN_STOP = function(win) { | |
| SLOT_MASHINE.STOP_ON_RESULT = true; | |
| window["symbol1" + RESULTS.R1].ON_UPDATE = function() { | |
| if (SLOT_MASHINE.SPIN == true) { | |
| var distance = REELS_OPTIONS.TOP + REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN; | |
| if (window["symbol1" + RESULTS.R1].POSITION.y > distance - REELS_OPTIONS.REELS_MARGIN && window["symbol1" + RESULTS.R1].POSITION.y < distance + REELS_OPTIONS.REELS_MARGIN && REELS_OPTIONS.REEL1_STOPED == false) { | |
| // audio_object_stop.play() | |
| if (RESULTS.R1 == 0) { | |
| window["symbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, distance, "DIAMETRIC"); | |
| } else if (RESULTS.R1 == 1) { | |
| window["symbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, REELS_OPTIONS.TOP, "DIAMETRIC"); | |
| } else { | |
| window["symbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, REELS_OPTIONS.TOP - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (RESULTS.R1 - 1)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R1 > 2) { | |
| window["Csymbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, Csymbol10.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL1.length - 2)), "DIAMETRIC"); | |
| } else if (RESULTS.R2 == 2) { | |
| window["Csymbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, Csymbol10.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R1 < SYMBOLS_REEL1.length - 1) { | |
| window["Csymbol10"].POSITION.SET_POSITION(REELS_OPTIONS.REEL1_POSITION_X, (symbol10.POSITION.y - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL1.length))), "DIAMETRIC"); | |
| } | |
| this.ON_UPDATE = function() {}; | |
| REELS_OPTIONS.REEL1_STOPED = true; | |
| } | |
| } | |
| }; | |
| window["symbol2" + RESULTS.R2].ON_UPDATE = function() { | |
| if (SLOT_MASHINE.SPIN == true) { | |
| var distance = REELS_OPTIONS.TOP + REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN; | |
| if (window["symbol2" + RESULTS.R2].POSITION.y > distance - REELS_OPTIONS.REELS_MARGIN && window["symbol2" + RESULTS.R2].POSITION.y < distance + REELS_OPTIONS.REELS_MARGIN && REELS_OPTIONS.REEL1_STOPED == true) { | |
| // audio_object_stop.play() | |
| if (RESULTS.R2 == 0) { | |
| window["symbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, distance, "DIAMETRIC"); | |
| } else if (RESULTS.R2 == 1) { | |
| window["symbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, REELS_OPTIONS.TOP, "DIAMETRIC"); | |
| } else { | |
| window["symbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, REELS_OPTIONS.TOP - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (RESULTS.R2 - 1)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R2 > 2) { | |
| window["Csymbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, Csymbol20.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL2.length - 2)), "DIAMETRIC"); | |
| } else if (RESULTS.R2 == 2) { | |
| window["Csymbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, Csymbol20.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R2 < SYMBOLS_REEL2.length - 1) { | |
| window["Csymbol20"].POSITION.SET_POSITION(REELS_OPTIONS.REEL2_POSITION_X, (symbol20.POSITION.y - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL2.length))), "DIAMETRIC"); | |
| } | |
| REELS_OPTIONS.REEL2_STOPED = true; | |
| this.ON_UPDATE = function() {}; | |
| } | |
| } | |
| }; | |
| window["symbol3" + RESULTS.R3].ON_UPDATE = function() { | |
| if (SLOT_MASHINE.SPIN == true) { | |
| var distance = REELS_OPTIONS.TOP + REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN; | |
| if (window["symbol3" + RESULTS.R3].POSITION.y > distance - 2 * REELS_OPTIONS.REELS_MARGIN && window["symbol3" + RESULTS.R3].POSITION.y < distance + 2 * REELS_OPTIONS.REELS_MARGIN && REELS_OPTIONS.REEL2_STOPED == true) { | |
| // audio_object_stop.play() | |
| if (RESULTS.R3 == 0) { | |
| window["symbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, distance, "DIAMETRIC"); | |
| } else if (RESULTS.R3 == 1) { | |
| window["symbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, REELS_OPTIONS.TOP, "DIAMETRIC"); | |
| } else { | |
| console.log(">>>>>>>>>>>>>>>" + (REELS_OPTIONS.SYMBOL_HEIGHT * (RESULTS.R3 - 1))) | |
| window["symbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, REELS_OPTIONS.TOP - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (RESULTS.R3 - 1)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R3 > 2) { | |
| window["Csymbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, Csymbol30.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL3.length - 2)), "DIAMETRIC"); | |
| } else if (RESULTS.R3 == 2) { | |
| window["Csymbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, Csymbol30.POSITION.y + ((REELS_OPTIONS.REELS_MARGIN)), "DIAMETRIC"); | |
| } | |
| if (RESULTS.R3 < SYMBOLS_REEL3.length - 1) { | |
| window["Csymbol30"].POSITION.SET_POSITION(REELS_OPTIONS.REEL3_POSITION_X, (symbol30.POSITION.y - ((REELS_OPTIONS.SYMBOL_HEIGHT + REELS_OPTIONS.REELS_MARGIN) * (SYMBOLS_REEL3.length))), "DIAMETRIC"); | |
| } | |
| console.log("ALL REELS ARE STOPED !") | |
| REELS_OPTIONS.REEL3_STOPED = true; // not important for now | |
| this.ON_UPDATE = function() {}; | |
| SLOT_MASHINE.SPIN = false; | |
| ON_SPIN_STOP(win); | |
| } | |
| } | |
| }; | |
| } | |
| function ON_SPIN_STOP(win) { | |
| console.log(" WIN is : " + win); | |
| if (win > 0) { | |
| window["symbol1" + RESULTS.R1].ANIMATION.TYPE = "LOOP"; | |
| window["symbol2" + RESULTS.R2].ANIMATION.TYPE = "LOOP"; | |
| window["symbol3" + RESULTS.R3].ANIMATION.TYPE = "LOOP"; | |
| WIN_PROCEDURE() | |
| } | |
| } | |
| ///////////////////// | |
| //Mobile optimezer | |
| //////////////////// | |
| if (NOMOBILE == 1) { | |
| WIN_PROCEDURE = function() { | |
| Wchar.POSITION.TRANSLATE(20, 40); | |
| Ichar.POSITION.TRANSLATE(40, 40); | |
| Nchar.POSITION.TRANSLATE(60, 40); | |
| MONEY_WIN.POSITION.TRANSLATE(1 + SYS.MATH.RANDOM_INT_FROM_TO(10, 80), 1 + SYS.MATH.RANDOM_INT_FROM_TO(1, 40)) | |
| MONEY_WIN2.POSITION.TRANSLATE(1 + SYS.MATH.RANDOM_INT_FROM_TO(10, 80), 1 + SYS.MATH.RANDOM_INT_FROM_TO(1, 40)) | |
| //MONEY_WIN3.POSITION.TRANSLATE(1 + SYS.MATH.RANDOM_INT_FROM_TO(10,90),1 + SYS.MATH.RANDOM_INT_FROM_TO(1,40)) | |
| setTimeout(function() { | |
| SET_BALANCE(SLOT_PLAYER.BALANCE + RESULTS.WIN, true); | |
| MONEY_WIN.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| MONEY_WIN2.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| setTimeout(function() { | |
| MONEY_WIN.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| MONEY_WIN2.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| MONEY_WIN.ON_UPDATE = function() { | |
| MONEY_WIN.PARTICLE.settings.particleSize = MONEY_SIZE_EFFECT.UPDATE() | |
| MONEY_WIN.ON_UPDATE = MONEY_WIN.ROTATE.ROTATE_ARROUNT_CENTER; | |
| }; | |
| setTimeout(function() { | |
| //LEAVE MEMORY | |
| MONEY_WIN.PARTICLE.settings.particleSize = 21; | |
| MONEY_WIN2.PARTICLE.settings.particleSize = 21; | |
| // MONEY_WIN3.PARTICLE.settings.particleSize = 21; | |
| MONEY_WIN.ON_UPDATE = function() {}; | |
| MONEY_WIN2.ON_UPDATE = function() {}; | |
| // MONEY_WIN3.ON_UPDATE = function(){}; | |
| MONEY_WIN.POSITION.TRANSLATE(SYS.MATH.RANDOM_INT_FROM_TO(120, 150), SYS.MATH.RANDOM_INT_FROM_TO(-120, 150)); | |
| MONEY_WIN2.POSITION.TRANSLATE(SYS.MATH.RANDOM_INT_FROM_TO(120, 150), SYS.MATH.RANDOM_INT_FROM_TO(120, -50)); | |
| // MONEY_WIN3.POSITION.TRANSLATE(SYS.MATH.RANDOM_INT_FROM_TO(120,150) , SYS.MATH.RANDOM_INT_FROM_TO(-120,-50)); | |
| Wchar.POSITION.TRANSLATE(-84.8, 46.4); | |
| Ichar.POSITION.TRANSLATE(-96.8, 46.4); | |
| Nchar.POSITION.TRANSLATE(-108.8, 46.4); | |
| win_sum.TYPE_OF_GAME_OBJECT = "NO_RENDER"; | |
| }, 4200); | |
| window["symbol1" + RESULTS.R1].ANIMATION.CURRENT_FRAME = 1; | |
| window["symbol1" + RESULTS.R1].ANIMATION.CURRENT_FRAME = 1; | |
| window["symbol1" + RESULTS.R1].ANIMATION.CURRENT_FRAME = 1; | |
| window["symbol1" + RESULTS.R1].ANIMATION.TYPE = "DRAW_FRAME"; | |
| window["symbol2" + RESULTS.R2].ANIMATION.TYPE = "DRAW_FRAME"; | |
| window["symbol3" + RESULTS.R3].ANIMATION.TYPE = "DRAW_FRAME"; | |
| }, 3200); | |
| MONEY_WIN2.ON_UPDATE = function() { | |
| MONEY_WIN2.PARTICLE.settings.particleSize = MONEY_SIZE_EFFECT2.UPDATE() | |
| MONEY_WIN2.ON_UPDATE = MONEY_WIN2.ROTATE.ROTATE_ARROUNT_CENTER; | |
| }; | |
| }, 1200); | |
| } | |
| } else { | |
| WIN_PROCEDURE = function() { | |
| Wchar.POSITION.TRANSLATE(20, 40); | |
| Ichar.POSITION.TRANSLATE(40, 40); | |
| Nchar.POSITION.TRANSLATE(60, 40); | |
| MONEY_WIN.POSITION.TRANSLATE(1 + SYS.MATH.RANDOM_INT_FROM_TO(10, 80), 1 + SYS.MATH.RANDOM_INT_FROM_TO(1, 40)) | |
| window["symbol1" + RESULTS.R1].ANIMATION.TYPE = "LOOP"; | |
| window["symbol2" + RESULTS.R2].ANIMATION.TYPE = "LOOP"; | |
| window["symbol3" + RESULTS.R3].ANIMATION.TYPE = "LOOP"; | |
| setTimeout(function() { | |
| SET_BALANCE(SLOT_PLAYER.BALANCE + RESULTS.WIN, true); | |
| MONEY_WIN.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| setTimeout(function() { | |
| MONEY_WIN.PARTICLE.settings.gravity = SYS.MATH.RANDOM_INT_FROM_TO(1, 10); | |
| MONEY_WIN.ON_UPDATE = function() { | |
| MONEY_WIN.PARTICLE.settings.particleSize = MONEY_SIZE_EFFECT.UPDATE() | |
| MONEY_WIN.ON_UPDATE = MONEY_WIN.ROTATE.ROTATE_ARROUNT_CENTER; | |
| }; | |
| setTimeout(function() { | |
| //LEAVE MEMORY | |
| MONEY_WIN.PARTICLE.settings.particleSize = 11; | |
| MONEY_WIN.ON_UPDATE = function() {}; | |
| MONEY_WIN.POSITION.TRANSLATE(SYS.MATH.RANDOM_INT_FROM_TO(120, 150), SYS.MATH.RANDOM_INT_FROM_TO(-120, 150)); | |
| Wchar.POSITION.TRANSLATE(-84.8, 46.4); | |
| Ichar.POSITION.TRANSLATE(-96.8, 46.4); | |
| Nchar.POSITION.TRANSLATE(-108.8, 46.4); | |
| win_sum.TYPE_OF_GAME_OBJECT = "NO_RENDER"; | |
| }, 4200); | |
| window["symbol1" + RESULTS.R1].ANIMATION.TYPE = "DRAW_FRAME"; | |
| window["symbol2" + RESULTS.R2].ANIMATION.TYPE = "DRAW_FRAME"; | |
| window["symbol3" + RESULTS.R3].ANIMATION.TYPE = "DRAW_FRAME"; | |
| window["symbol1" + RESULTS.R1].ANIMATION.CURRENT_FRAME = 2; | |
| window["symbol2" + RESULTS.R2].ANIMATION.CURRENT_FRAME = 2; | |
| window["symbol3" + RESULTS.R3].ANIMATION.CURRENT_FRAME = 2; | |
| }, 3200); | |
| }, 1200); | |
| }; | |
| } | |
| } | |
| <script src="https://maximumroulette.com/visual-js/manifest/manifest_jsfiddle.js"></script> | |
| <script src="https://maximumroulette.com/visual-js/lib/build.js"></script> |
Slot mashine is made in visual-js game engine . Yuo can learn here nice staff about this game engine.
A Pen by VisualJS game engine on CodePen.