QuickTiGame2d рдкрд░ Appcelerator Titanium рдореЗрдВ рдЦреЗрд▓реЗрдВред рднрд╛рдЧ реи


рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, " рдПрдкреНрд▓рд╛рд╕рд░реЗрдЯрд░ рдЯрд╛рдЗрдЯреЗрдирд┐рдпрдо рдореЗрдВ рдХреНрд╡рд┐рдХрдЯреАрдЧреИрдо 2 рдбреА рдкреНрд▓реЗ рдХрд░рдирд╛ред рднрд╛рдЧ 1, " рдореИрдВрдиреЗ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдЕрдм рдореИрдВ Appcelerator Titanium рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЧреЗрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред

рдЦреЗрд▓ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ, рдЖрдкрдХреЛ "рдЯрд┐рдЯрд╛рдирд┐рдпрдо" рд╢рдмреНрдж рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдЬреАрдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЦреЗрд▓ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, pathsToFiles.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

//menuScene var pngMenuBackground = "pictures/menu/background.png"; var pngButtonNewGame = "pictures/menu/newGame.png"; var pngButtonHelp = "pictures/menu/help.png"; //helpScene var pngHelp = "pictures/help/help.png"; var pngBackFromHelp = "pictures/help/back.png"; //mainLoadingScene var pngMainBackground = "pictures/game/background.png"; var pngBackToMenu = "pictures/game/back.png"; var pngVictory = "pictures/game/victory.png"; var xmlCharactersPosition = "pictures/game/charactersPosition.xml"; //sound var soundClick = "sound/click.wav"; 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рджреЗрдЦреЗрдВ app.js. рдПрдХ рдЧреЗрдо рд╕реНрдХреНрд░реАрди рдмрдирд╛рдПрдВ, рдЙрди js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдФрд░ Android рдФрд░ iOS рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рд▓реЗрдЖрдЙрдЯ рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд░реЗрдВ:

 var window = Ti.UI.createWindow({ backgroundColor : 'black' }); var quicktigame2d = require('com.googlecode.quicktigame2d'); var game = quicktigame2d.createGameView(); if (Titanium.Platform.osname === 'android') { game.orientation = Ti.UI.LANDSCAPE_LEFT; window.orientationModes = [Titanium.UI.LANDSCAPE_LEFT]; } else { game.orientation = Ti.UI.LANDSCAPE_RIGHT; window.orientationModes = [Titanium.UI.LANDSCAPE_RIGHT]; } Ti.include('pathsToFiles.js'); Ti.include('helpScene.js'); Ti.include('menuScene.js'); Ti.include('mainScene.js'); 

рдЕрдЧрд▓рд╛, рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрдорд╛рдиреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЛрдб рдХрд┐рдП рдЧрдП рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЧреЗрдо рд╡рд┐рдВрдбреЛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ MenuScene рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред

 var WINDOW_SCALE_FACTOR_X = 1; var WINDOW_SCALE_FACTOR_Y = 1; game.addEventListener('onload', function(e) { var screenScale = game.size.height / 640; game.screen = { width : game.size.width / screenScale, height : game.size.height / screenScale }; WINDOW_SCALE_FACTOR_X = game.screen.width / game.size.width; WINDOW_SCALE_FACTOR_Y = game.screen.height / game.size.height; MenuScene.init(); HelpScene.init(); MainScene.init(); game.pushScene(MenuScene.scene); game.start(); }); window.add(game); window.open({ fullscreen : true, navBarHidden : true }); 

рдЕрдм рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП MenuScene рдмрдирд╛рддреЗ рд╣реИрдВред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реАрдзреЗ рдЗрд╕реЗ рдмрдирд╛рдПрдВ:

 var buttonMargin = 20; var clickSound = null; var MenuScene = { scene : null, background : null, buttonNewGame : null, buttonHelp : null, init : function() { this.scene = quicktigame2d.createScene(); ... }, }; 

рдпрд╣рд╛рдБ рдмрдЯрдирдореИрд░рд┐рдЬ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╣реИ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреНрд▓рд┐рдХрд╕рд╛рдЙрдВрдб рдзреНрд╡рдирд┐ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рд╣реИред

рдЕрдм рдпрд╣ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд╕реНрдкреНрд░рд╛рдЗрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдХрд░рдВрдЯ рд╕реАрди рдЪрд▓рд╛рдПрдВ:

  var onloadsprite = (function(self) { return function(e) { if (e.name == pngButtonHelp) { game.startCurrentScene(); } }; })(this); 

рд╣рдореЗрдВ "рдирдпрд╛ рдЧреЗрдо" рдФрд░ "рд╕рд╣рд╛рдпрддрд╛" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдЬрдм рдЖрдк рджрдмрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдЖрдк рдмрдЯрди рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рддрд╕реНрд╡реАрд░ рдмрджрд▓ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЫреЛрдЯреА рдзреНрд╡рдирд┐ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрдЧреА, рдФрд░ рдЬрдм "рдЙрджрд╛рд╕", рдЦреЗрд▓ рдХрд╛ рджреГрд╢реНрдп рдЪрдпрдирд┐рдд рдПрдХ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛:

 var touchstart = (function(self) { return function(e) { var x = ex * WINDOW_SCALE_FACTOR_X; var y = ey * WINDOW_SCALE_FACTOR_Y; if (self.buttonNewGame.contains(x, y)) { self.buttonNewGame.frame = 0; clickSound.play(); } if (self.buttonHelp.contains(x, y)) { self.buttonHelp.frame = 0; clickSound.play(); } } })(this); var touchend = (function(self) { return function(e) { var x = ex * WINDOW_SCALE_FACTOR_X; var y = ey * WINDOW_SCALE_FACTOR_Y; self.buttonNewGame.frame = 1; self.buttonHelp.frame = 1; if (self.buttonNewGame.contains(x, y)) { game.pushScene(MainScene.scene); } if (self.buttonHelp.contains(x, y)) { game.pushScene(HelpScene.scene); } }; })(this); 

рдЕрдм рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рдмрдЯрди рдХреЗ рдХреЙрд░реНрдбрд┐рдиреЗрдЯ рдФрд░ рдЧреЗрдо рдореЗрдиреНрдпреВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрдЯ рдХрд░реЗрдВред рджреГрд╢реНрдп, рд╕рд╛рде рд╣реА рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рддрддреНрд╡ рдЬреЛрдбрд╝реЗрдВ:

 var activated = (function(self) { return function(e) { if (clickSound == null) { clickSound = Ti.Media.createSound({ url : soundClick }); } if (self.background == null) { self.background = quicktigame2d.createSprite({ image : pngMenuBackground }); } if (self.buttonNewGame == null) { self.buttonNewGame = quicktigame2d.createSpriteSheet({ image : pngButtonNewGame, width : 275, height : 100 }); } if (self.buttonHelp == null) { self.buttonHelp = quicktigame2d.createSpriteSheet({ image : pngButtonHelp, width : 275, height : 100 }); } self.background.x = (game.screen.width * 0.5) - (self.background.width * 0.5); self.background.y = (game.screen.height * 0.5) - (self.background.height * 0.5); self.buttonNewGame.x = (game.screen.width - self.buttonNewGame.width) / 4; self.buttonNewGame.y = (game.screen.height * 0.8); self.buttonHelp.x = (game.screen.width - self.buttonNewGame.width) / 4*3; self.buttonHelp.y = self.buttonNewGame.y; self.buttonNewGame.frame = 1; self.buttonHelp.frame = 1; self.scene.add(self.background); self.scene.add(self.buttonNewGame); self.scene.add(self.buttonHelp); game.addEventListener('touchstart', touchstart); game.addEventListener('touchend', touchend); self.scene.addEventListener('enterframe', enterframe); }; })(this); 

рд╣рдо рд╕рднреА рдмрдирд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ (рдмрдирд╛рд╡рдЯ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП):

 var deactivated = (function dea(self) { return function(e) { self.scene.remove(self.background); self.background = null; self.scene.remove(self.buttonNewGame); self.scene.remove(self.buttonHelp); self.buttonNewGame = null; self.buttonHelp = null; game.unloadTexture(pngButtonNewGame); game.unloadTexture(pngButtonHelp); game.removeEventListener('touchstart', touchstart); game.removeEventListener('touchend', touchend); }; })(this); 

рдпрд╣ рдХреЗрд╡рд▓ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рд╕рдХреНрд░рд┐рдпрдг / рджреГрд╢реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

  this.scene.addEventListener('activated', activated); this.scene.addEventListener('deactivated', deactivated); this.scene.addEventListener('onloadsprite', onloadsprite); 

рдореЗрдиреВ рджреГрд╢реНрдп рддреИрдпрд╛рд░ рд╣реИред рдЪрд▓рд┐рдП рдорджрдж рджреГрд╢реНрдп рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рддрддреНрд╡реЛрдВ рдХреА рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЦреБрдж рдХреЛ рджреЛрд╣рд░рд╛рдПрдВрдЧреЗ рдирд╣реАрдВ рдФрд░ рдЙрди рддрддреНрд╡реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ рдорджрдж рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ:

  if (self.background == null) { self.background = quicktigame2d.createSprite({ image : pngMenuBackground }); } if (self.menuLayer == null) { self.menuLayer = quicktigame2d.createSprite({ width : self.background.width, height : self.background.height }); self.menuLayer.color(0.5, 0.5, 0.5); self.menuLayer.alpha = 0.78; } if (self.foreground == null) { self.foreground = quicktigame2d.createSpriteSheet({ image : pngHelp, width : 960, height : 640 }); } 

рдпрд╣рд╛рдВ рд╣рдо рдкреГрд╖реНрдарднреВрдорд┐ рдХреА 3 рдкрд░рддреЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдиреВ рдореЗрдВ рдкрд░рдд рд╣реИ, рдпрд╣ рдиреАрдЪреЗ рд╣реЛрдЧрд╛ред рд╣рдо рд╢реАрд░реНрд╖ рдкрд░ рджреВрд╕рд░реА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕рдореЗрдВ рд░рдВрдЧ рдФрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╣реИ)ред рддреАрд╕рд░рд╛ рд╣реИ рдЯреЗрдХреНрд╕реНрдЯ рд▓реЗрдпрд░ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯрд╢реАрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред

рдЖрдЗрдП рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рд╕реНрдерд┐рдд рдмрдЯрди рдХреЗ рд╕реНрдерд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:

 if (game.screen.width > self.background.width) { self.okButton.x = self.background.x + self.background.width - self.okButton.width - buttonMargin; self.okButton.y = self.background.y + self.background.height - self.okButton.height - buttonMargin; } else { self.okButton.x = game.screen.width - self.okButton.width - buttonMargin; self.okButton.y = game.screen.height - self.okButton.height - buttonMargin; } 

рдФрд░ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдкрд╛рда рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝реЗрдВ:

 self.foreground.animate(0, 2, 2000, -1); 

рдЕрдм рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдЪрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:

 var COUNT_OF_CHARACTERS = 9; var word = ""; var wordTitanium = "titanium"; 

рдЬрд╣рд╛рдВ COUNT_OF_CHARACTERS рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдкрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рд╢рдмреНрдж рдПрдХрддреНрд░рд┐рдд рд╢рдмреНрдж рд╣реИ, рд╢рдмреНрджрдЯреИрдирд┐рдпрдо рд╕рдВрдЧреНрд░рд╣ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╢рдмреНрдж рд╣реИред

рд╕рдХреНрд░рд┐рдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо рдЕрдХреНрд╖рд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 var xCoef = self.background.width / 4; var yCoef = self.background.height / 4; var xParam = 1; var yParam = 1; for (var i = 0; i < COUNT_OF_CHARACTERS; i++) { self.characters[i] = quicktigame2d.createSpriteSheet({ image : xmlCharactersPosition }); self.characters[i].x = self.background.x + xCoef * xParam; self.characters[i].y = self.background.x + yCoef * yParam; xParam++; if (xParam > 3) { xParam = 1; yParam++; } self.characters[i].z = 3; self.characters[i].hide(); self.characters[i].index = i; self.characters[i].status = "waiting"; self.characters[i].selectFrame("character0"); self.scene.add(self.characters[i]); if (self.charactersTransforms[i] == null) { self.charactersTransforms[i] = quicktigame2d.createTransform(); self.charactersTransforms[i].addEventListener('complete', oncharactersCompleted); self.charactersTransforms[i].index = i; } } 

рдпрд╣рд╛рдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ, рд╕реНрдерд┐рддрд┐, рд╡рд░реНрддрдорд╛рди рдЫрд╡рд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рднреА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдШрдЯрдирд╛ рд╢реНрд░реЛрддрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 var oncharactersCompleted = (function(self) { return function(e) { var transform = e.source; var choosenCharacter = self.characters[transform.index]; if (choosenCharacter != null) { if (choosenCharacter.status == "moving") { choosenCharacter.show(); choosenCharacter = changeStatus(choosenCharacter, transform, "living"); } else if (choosenCharacter.status == "living") { choosenCharacter = changeStatus(choosenCharacter, transform, "dying"); } else if (choosenCharacter.status == "dying") { choosenCharacter = changeStatus(choosenCharacter, transform, "hiding"); } else if (choosenCharacter.status == "hiding") { transform.scale(0, 0); choosenCharacter = changeStatus(choosenCharacter, transform, "queue_waiting"); } else if (choosenCharacter.status == "queue_waiting") { choosenCharacter.hide(); choosenCharacter.status = "waiting"; transform.duration = 1000; choosenCharacter.transform(transform); } else if (choosenCharacter.status == "killed") { transform.rotate(-360); transform.scale(0, 0); choosenCharacter = changeStatus(choosenCharacter, transform, "queue_waiting"); } } }; })(this); function changeStatus(choosenCharacter, transform, statuscharacter) { transform.duration = 2000; choosenCharacter.status = statuscharacter; choosenCharacter.transform(transform); return choosenCharacter; } 

рдпрд╣рд╛рдВ, рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрдВрдЧреА: рд╕реНрдХреНрд░реАрди рдкрд░ рдШреБрдорд╛рд╡, рдЬрд╝реВрдорд┐рдВрдЧ, рдЫрд┐рдкрд╛рдирд╛ рдФрд░ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ред

рдЦреЗрд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╢рдмреНрдж рдореЗрдВ рдкрд╛рда рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕ рджреГрд╢реНрдп рдХреА рдЬрд╛рдирдХрд╛рд░реА рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдЬреАрддрд╛ рдерд╛, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ рдЬреАрдд рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдПрдЧрд╛:

 function finishActivity(self) { word = ""; self.scene.add(self.victoryText); self.victoryTextTransform.duration = 1000; self.victoryText.transform(self.victoryTextTransform); } var onVictoryTextCompleted = (function(self) { return function(e) { if (self.victoryTextTransform.completed) { self.scene.remove(self.victoryText); closeGame(self); } else { self.victoryTextTransform.y = game.screen.height; self.victoryTextTransform.completed = true; self.victoryText.transform(self.victoryTextTransform); } }; })(this); 

рдПрдВрдЯрд░рдлрд╝реНрд░реЗрдо рдореЗрдВ, рдЖрдкрдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡реЛрдВ рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рд╕реНрдерд┐рддрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИ: рддрддреНрд╡ рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдкрддреНрд░ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред

 self.charactersTransforms[i].show(); self.charactersTransforms[i].scale(1, 1); self.charactersTransforms[i].duration = 500; self.charactersTransforms[i].delay = 0; self.charactersTransforms[i].easing = quicktigame2d.ANIMATION_CURVE_CUBIC_IN; var face = Math.floor((randomNumber * 100) % 8); for (var count = 0; count < wordTitanium.length; count++) { if (face == count) { self.characters[i] = addDataToWord(self.characters[i], self.charactersTransforms[i], "character"+count, wordTitanium[count]); self.characters[i].transform(self.charactersTransforms[i]); break; } } 

AddDataToWord рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛рдВ рд╣реИ:

 function addDataToWord(choosenCharacter, choosenCharacterTransform, frame, symbol) { choosenCharacter.isMoving = false; choosenCharacter.faceName = frame; choosenCharacter.symbol = symbol; choosenCharacter.status = "moving"; choosenCharacter.selectFrame(frame); choosenCharacterTransform.duration = 0; choosenCharacter.transform(choosenCharacterTransform); return choosenCharacter; } 

рдЕрдВрддрд┐рдо рдЪреАрдЬрд╝ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реИ:

 var dblclick = (function(self) { return function(e) { var x = ex * WINDOW_SCALE_FACTOR_X; var y = ey * WINDOW_SCALE_FACTOR_Y; if (!self.loaded) return; if (!self.started) return; for (var i = 0; i < COUNT_OF_CHARACTERS; i++) { if (self.characters[i].status != "killed") { if (self.characters[i].contains(x, y)) { clickSound.play(); self.charactersTransforms[i].rotate(360); self.charactersTransforms[i].duration = 2000; self.characters[i].transform(self.charactersTransforms[i]); self.characters[i].status = "killed"; word += self.characters[i].symbol; Ti.API.info(word); if (wordTitanium.indexOf(word) == 0) { Ti.API.info(word + " " + wordTitanium); if(wordTitanium.length == word.length){ finishActivity(self); } } else { word = ""; } } } } }; })(this); 

рдЙрд╕реА рд╕рдордп, рд╣рдо рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреЗ рд╣реИрдВ, рдПрдиреАрдореЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реА рд╢рдмреНрдж рдореЗрдВ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЗрд╕ рдкрддреНрд░ рдХреА рдШрдЯрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдореА рдкрд░рд┐рдгрд╛рдо:









Source: https://habr.com/ru/post/In153051/


All Articles