| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- function CInterface(refGame){
- var _bKeyIsDown;
- var _pStartPosExit;
- var _pStartPosAudio;
- var _pStartPosFullscreen;
-
- var _bMouseBusy = true,
- _bVectorAquired = false,
- _bAnimX = false,
- _bAnimY = false,
- _bAnimXLeft = false,
- _bAnimYUp = false,
- _fReturnX = undefined,
- _fReturnY = undefined,
- _fMaxShotBallDistance = SHOTGUI_SIZE/3,
- _iIniShotBallPosX = CANVAS_WIDTH*0.85,
- _iIniShotBallPosY = CANVAS_HEIGHT*0.45,
- _refGame,
- _oShapeKeyListener,
- _oSpriteShotBallX,
- _oSpriteShotBallY,
- _oSpriteShotGui,
- _oSpriteTimePanel,
- _oAudioToggle,
- _oExitBut,
- _oTextTime,
- _oTextPoints,
- _oTextShots,
- _oContainerDisplay;
- var _oButFullscreen;
- var _fRequestFullScreen = null;
- var _fCancelFullScreen = null;
- this.init = function(refGame){
- _refGame = refGame;
- var oSpriteGUI = s_oSpriteLibrary.getSprite("shot_gui");
- _oSpriteShotGui = createBitmap(oSpriteGUI);
- _oSpriteShotGui.regX = SHOTGUI_SIZE/2;
- _oSpriteShotGui.regY = SHOTGUI_SIZE/2;
- _oSpriteShotGui.x = _iIniShotBallPosX;
- _oSpriteShotGui.y = _iIniShotBallPosY;
- s_oStage.addChild(_oSpriteShotGui);
-
- _oContainerDisplay = new createjs.Container();
- _oContainerDisplay.x = 80;
- s_oStage.addChild(_oContainerDisplay);
-
- var oSpritePanel = s_oSpriteLibrary.getSprite("time_panel");
- _oSpriteTimePanel = createBitmap(oSpritePanel);
- _oContainerDisplay.addChild(_oSpriteTimePanel);
- _oTextTime = new CTLText(_oContainerDisplay,
- _oSpriteTimePanel.x+5, 40, oSpritePanel.width-10, 24,
- 24, "center", "#ffde00", FONT_GAME2, 1,
- 0, 0,
- TEXT_TIME_LEFT+" "+formatTime(TIME_AVAILABLE),
- true, true, false,
- false );
- _oTextTime.setShadow("#000000", 3, 3, 4);
- var szPoints = TEXT_SCORE + " 0";
- _oTextPoints = new CTLText(_oContainerDisplay,
- _oSpriteTimePanel.x+5, 68, oSpritePanel.width-10, 30,
- 30, "center", "#ffde00", FONT_GAME2, 1,
- 0, 0,
- szPoints,
- true, true, false,
- false );
- _oTextPoints.setShadow("#000000", 3, 3, 4);
- var szShots = TEXT_SHOTS + " 0";
- _oTextShots = new CTLText(_oContainerDisplay,
- _oSpriteTimePanel.x+5, 100, oSpritePanel.width-10, 30,
- 30, "center", "#ffde00", FONT_GAME2, 1,
- 0, 0,
- szShots,
- true, true, false,
- false );
- _oTextShots.setShadow("#000000", 3, 3, 4);
-
- _oSpriteShotBallX = createBitmap(s_oSpriteLibrary.getSprite("shot_ball"));
- _oSpriteShotBallX.regX = SHOTBALL_SIZE/2;
- _oSpriteShotBallX.regY = SHOTBALL_SIZE/2;
- _oSpriteShotBallX.x = _iIniShotBallPosX - 100;
- _oSpriteShotBallX.y = _iIniShotBallPosY;
- s_oStage.addChild(_oSpriteShotBallX);
- _oSpriteShotBallY = createBitmap(s_oSpriteLibrary.getSprite("shot_ball"));
- _oSpriteShotBallY.regX = SHOTBALL_SIZE/2;
- _oSpriteShotBallY.regY = SHOTBALL_SIZE/2;
- _oSpriteShotBallY.x = _iIniShotBallPosX ;
- _oSpriteShotBallY.y = _iIniShotBallPosY - 100;
- _oSpriteShotBallY.visible = false;
- s_oStage.addChild(_oSpriteShotBallY);
- _oShapeKeyListener = new createjs.Shape();
- _oShapeKeyListener.graphics.beginFill("Black").drawRect(0,75,CANVAS_WIDTH,CANVAS_HEIGHT-75);
- _oShapeKeyListener.alpha = 0.01;
- s_oStage.addChild(_oShapeKeyListener);
- _oShapeKeyListener.on("mousedown", this._handleClick, this);
-
- if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
- var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
- _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.width/4) - 5, y: (oSprite.height/2) + 5};
- _oAudioToggle = new CToggle(_pStartPosAudio.x,_pStartPosAudio.y,oSprite,s_bAudioActive,s_oStage);
- _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
- };
-
- var doc = window.document;
- var docEl = doc.documentElement;
- _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
- _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
-
- if(ENABLE_FULLSCREEN === false){
- _fRequestFullScreen = false;
- }
-
- if (_fRequestFullScreen && screenfull.isEnabled){
- oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
- _pStartPosFullscreen = {x:oSprite.width/4 + 10,y:(oSprite.height/2) + 5};
- _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
- _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
- }
-
- var oSprite = s_oSpriteLibrary.getSprite('but_exit');
- _pStartPosExit = {x: CANVAS_WIDTH - (oSprite.width/2) - 62, y: (oSprite.height/2) + 5};
- _oExitBut = new CGfxButton(_pStartPosExit.x,_pStartPosExit.y,oSprite);
- _oExitBut.addEventListener(ON_MOUSE_UP, this._onExit, this);
-
- _bKeyIsDown = false;
- if(s_bMobile === false){
- document.onkeydown = this.onKeyDown;
- document.onkeyup = this.onKeyUp;
- }
-
- this.refreshButtonPos(s_iOffsetX,s_iOffsetY);
- };
-
- this.refreshButtonPos = function(iNewX,iNewY){
- _oExitBut.setPosition(_pStartPosExit.x - iNewX,iNewY + _pStartPosExit.y);
- if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
- _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX,iNewY + _pStartPosAudio.y);
- }
-
- if (_fRequestFullScreen && screenfull.isEnabled){
- _oButFullscreen.setPosition(_pStartPosFullscreen.x + s_iOffsetX,_pStartPosFullscreen.y + s_iOffsetY);
- }
-
- _oContainerDisplay.y = iNewY;
- };
- this.unload = function(){
- if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
- _oAudioToggle.unload();
- };
-
- if (_fRequestFullScreen && screenfull.isEnabled){
- _oButFullscreen.unload();
- }
-
- _oExitBut.unload();
- document.onkeydown = null;
- document.onkeyup = null;
- s_oInterface = null;
- };
-
- this.resetFullscreenBut = function(){
- _oButFullscreen.setActive(s_bFullscreen);
- };
- this.updateTime = function(iTime){
- var szTimeLeft = TEXT_TIME_LEFT +" "+formatTime(iTime);
- _oTextTime.refreshText(szTimeLeft);
- };
- this.updateScore = function(iScore){
- var szScore = TEXT_SCORE + " "+iScore;
- _oTextPoints.refreshText(szScore);
- };
- this.updateShots = function(iShots){
- var szShots = TEXT_SHOTS + " "+iShots;
- _oTextShots.refreshText(szShots);
- };
- this._handleClick = function(e){
- if (!_bMouseBusy) {
- _bMouseBusy = false;
- if (_bAnimX === true){
- _bAnimX = false;
- _bAnimY = true;
- _fReturnX = Math.floor((_oSpriteShotBallX.x - _iIniShotBallPosX)/(_fMaxShotBallDistance)*100)/100;
- _oSpriteShotBallY.visible = true;
- return true;
- };
- if (_bAnimY === true){
- _bAnimY = false;
- _fReturnY = Math.floor((_oSpriteShotBallY.y - _iIniShotBallPosY)/(_fMaxShotBallDistance)*100)/100;
- _bVectorAquired = true;
- };
- };
- };
-
- this.onKeyUp = function(evt) {
- _bKeyIsDown = false;
- };
-
- this.onKeyDown = function(evt) {
- if(_bKeyIsDown){
- return;
- }
- _bKeyIsDown = true;
- if(!evt){
- evt = window.event;
- }
-
- switch(evt.keyCode) {
- // spacebar
- case 32: {
- s_oInterface._handleClick();
- break;
- }
- }
-
- evt.preventDefault();
- return false;
- };
- this.listenForClick = function(){
- _bMouseBusy = false;
- if(_bVectorAquired){
- return true;
- } else if (_bAnimX === false && _bAnimY === false){
- _bAnimX = true;
- this._animateShotBall();
- return true;
- } else {
- this._animateShotBall();
- return true;
- };
- };
- this._animateShotBall = function(){
- if (_bAnimX) {
- // animX
- if (_bAnimXLeft) {
- _oSpriteShotBallX.x -= SELECTOR_SPEED;
- if (_oSpriteShotBallX.x < CANVAS_WIDTH*0.85 - _fMaxShotBallDistance) {
- _bAnimXLeft = false;
- };
- } else {
- _oSpriteShotBallX.x += SELECTOR_SPEED;
- if (_oSpriteShotBallX.x > CANVAS_WIDTH*0.85 + _fMaxShotBallDistance) {
- _bAnimXLeft = true;
- };
- };
- } else if (_bAnimY) {
- // animY
- if (_bAnimYUp) {
- _oSpriteShotBallY.y -= SELECTOR_SPEED;
- if (_oSpriteShotBallY.y < CANVAS_HEIGHT*0.45 - _fMaxShotBallDistance) {
- _bAnimYUp = false;
- };
- } else {
- _oSpriteShotBallY.y += SELECTOR_SPEED;
- if (_oSpriteShotBallY.y > CANVAS_HEIGHT*0.45 + _fMaxShotBallDistance) {
- _bAnimYUp = true;
- };
- };
- };
- };
- this.isVectorAquired = function(){
- return {state: _bVectorAquired,vector: {x: _fReturnX, y: _fReturnY}};
- };
- this.newBall = function(){
- _bMouseBusy = true;
- _bVectorAquired = false;
- _bAnimX = false;
- _bAnimY = false;
- _bAnimXLeft = false;
- _bAnimYUp = false;
- _oSpriteShotBallX.x = _iIniShotBallPosX - 100;
- _oSpriteShotBallX.y = _iIniShotBallPosY;
-
- _oSpriteShotBallY.x = _iIniShotBallPosX ;
- _oSpriteShotBallY.y = _iIniShotBallPosY - 100;
-
- _oSpriteShotBallY.visible = false;
- };
- this._onAudioToggle = function(){
- Howler.mute(s_bAudioActive);
- s_bAudioActive = !s_bAudioActive;
- };
- this._onExit = function(){
- _refGame.unload();
- };
-
- this._onFullscreenRelease = function(){
- if(s_bFullscreen) {
- _fCancelFullScreen.call(window.document);
- }else{
- _fRequestFullScreen.call(window.document.documentElement);
- }
-
- sizeHandler();
- };
-
- s_oInterface = this;
- this.init(refGame);
- };
- var s_oInterface = null;
|