From 48e0a2e919184969316ce3b23d1c16b0653d5a66 Mon Sep 17 00:00:00 2001 From: Guillaume DE LA RUE Date: Sat, 12 Feb 2011 22:24:14 +0100 Subject: [PATCH] Ready for collision !! --- .gitignore | 2 + css/.empty | 0 guiltouf/css/style.css | 30 ++++++--- guiltouf/images/sprites/reactor_drum.png | Bin 1573 -> 726 bytes .../images/sprites/reactor_fire_sprite.png | Bin 0 -> 12491 bytes guiltouf/index.html | 2 + guiltouf/js/GameClass.js | 1 - guiltouf/js/LayoutClass.js | 43 ++++++++----- guiltouf/js/layouts/BgLayer.js | 2 + guiltouf/js/layouts/Ennemies.js | 9 +-- guiltouf/js/layouts/PlayerLayer.js | 58 +++++++++--------- images/.empty | 0 images/wings_eagle_sprite.png | Bin 0 -> 11052 bytes 13 files changed, 90 insertions(+), 57 deletions(-) create mode 100644 .gitignore delete mode 100644 css/.empty create mode 100644 guiltouf/images/sprites/reactor_fire_sprite.png delete mode 100644 images/.empty create mode 100644 images/wings_eagle_sprite.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7183b60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.empty +/css/.empty \ No newline at end of file diff --git a/css/.empty b/css/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/guiltouf/css/style.css b/guiltouf/css/style.css index 2846e98..7720f89 100644 --- a/guiltouf/css/style.css +++ b/guiltouf/css/style.css @@ -33,7 +33,7 @@ display: block; top:0; left:0; - background: rgba(20, 20, 20, 1); + background: transparent; } #ship .wing { @@ -46,11 +46,7 @@ background: transparent url(/images/sprites/wings_eagle_sprite.png) no-repeat 0 0; } -#ship .wing.right { - left: 83px; - background-position: right 0; -} - +#ship .wing.right { left: 83px; background-position: right 0; } #ship .ship-body { position: absolute; display: block; @@ -65,12 +61,32 @@ position: absolute; display: block; top:0; - left: 70.5px; + left: 71px; width: 18px; height: 40px; background: transparent url(/images/sprites/weapon_pilot.png) no-repeat 0 0; } +#ship .ship-reactor { + position: absolute; + display: block; + background: transparent url(/images/sprites/reactor_drum.png) no-repeat 0 0; + top:85px; + left:72px; + width: 15px; + height: 14px; +} + +#ship .ship_reactor_fire { + position: absolute; + display: block; + background: transparent url(/images/sprites/reactor_fire_sprite.png) no-repeat -88px 0; + top:88px; + left: 58px; + width: 44px; + height: 68px; +} + /* Ennemies */ #game .ennemy { border: 1px solid blue; } #hud { diff --git a/guiltouf/images/sprites/reactor_drum.png b/guiltouf/images/sprites/reactor_drum.png index fe80dce798a9501d289471f3d49a03d7b47b7ba0..d63c17e9fbfd6e6ad35d01f1f92059f99e495dbb 100644 GIT binary patch literal 726 zcmV;{0xA88P)42Q50P>b7rP9Npl&~ zByE$_N>kceZ9x#pvxr}yPlC_>fIr}ui0?)47ZemkDbxx|Y#Mt>n@O76Oy+iu`$#G{ zusF<~z0Tfi?==eke-uKMuuE7WTXSL_rY06Tlwjv+A}2 zG4Bohksrj*)mdv#tL5xwW4Ffg84INw^C;wPsKith1%}Q5DtT{X5sjUyN;wg6+LGKO zyr#rBZRyCSO>mx|(;dMb_!#>#PaujD)3+=F^B0AvTm4TnsUs1Q>Zin!+X%;&0{c zgJ#$E!vp+0cClJXO_=QT+#GN!KS8cj6x$Sne`Qx`!H zqEhbA#HZA<2Y(u%d2|9Vh{2QCCf>R<$rIB3hH09RO=>P_wnNT^lzK%CMSlbs0I!D?^o+a3R{#J207*qo IM6N<$g1vx7>;M1& literal 1573 zcmbu9do&XY9LFbR9+^Cj*Y!&BO4@9BZHVTvxa+3XO->_ZITSMoGmjB@HqSyfl8{T0 zM-nHG<;`e9o{{4fGaADTcin&P>5u!@{r=AH_c`Zxe&6#uzkhy-f1vFp#g)YY0DvUQ z0qHDYks#egMFbUpqV1^wA|8(RNWj6*SW)~OBj|_)IJgi5boeLjx_vEwHiHAKaRUD1 z2e3=))&PKGXcW>K6FSbCx|~1_QSIE=W^W^)1FHh{J*CmK;CWWw7n!v_n6zpO-Rnq% z_;tBho8>~yW0$d;nidi^dU8He%$t8Dv|9lSMJx*!2POO`=@c!fC=G)sqX~ie+1AC>Q(Zg;2l`HHq1f$19`}9sVQb-9ivRvPVKRa*wlLk;x-c%% zOx!hEYm?)$A_9{iULV45Vp{mQGWmG^!IrrKgDzn*gw-}X9?zpe?pOZkABg{)T^X=K zE9W=OzT78*8@i2q+R~mB>{@!68kR;i|^ma3O z1Ht5s}Nx7&k*S zcso&#lEt~<3+_nk-fyD@Af}QmOWXOAG~Aw2~4q*-6^Zn)_3yCF+8e;>YM5i zg1=H@VMR^bbW30~ojF{BM?I*bMAZ__7o4Zzi(h?zHB+`dcNtOFpt*Q?AY;oSC0au` zyK=h3+3-XM$hRLf=m-y^-o>fVydq!cgmY&-v&4n2$PKY1qho_ZE;PbFatt_+Q4E@H zx)lF}1CyerGp=Ocq8LE&$k2-PtfzNyg`%3?GIGa{L)*nv1}9gTep_E&vTMF71q`an zkpYS?rmPHMDcju~13VRg2=^>bXG{85g_Gj1a-aq(l`=<#=wPi&2CT;-QO(01igrP~ zPkPV9S4$&6b2jwQf(pn-@GObzs34y@QS7L*%&pv58q-g`MP1zabPBc&tngn8AQUqc zvKg~ge(Ye}!JFzjKvMzNEJZ?cE<(IW@!7XMu2TmgmToB0IZjg*d2o_5+_+lHgSp-c z+ZQ@hZ@dK3%rNZ{#zogNE#vWp$Z#jUcbvL3hkO1Mdg`Fakp$XTe5iAx0R8 uu{rF#IoRwB7-9|vyG?~0`^9k2-^<6F_}>OY@<4;Y06^KIk*{ssWBvw2hTsYS diff --git a/guiltouf/images/sprites/reactor_fire_sprite.png b/guiltouf/images/sprites/reactor_fire_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..cca9b1569c30b3a065f49f81029643a06f1316e5 GIT binary patch literal 12491 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 V7R<0
+
+
diff --git a/guiltouf/js/GameClass.js b/guiltouf/js/GameClass.js index d0110c1..02e6954 100644 --- a/guiltouf/js/GameClass.js +++ b/guiltouf/js/GameClass.js @@ -5,7 +5,6 @@ var Level = 1 ; var Layouts = {} ; var timers = {} ; var Game = null ; -var cos = Math.cos, sin = Math.sin, tan = Math.tan, exp = Math.exp, log = Math.log, pow = Math.pow ; // -- Init scene prototype var app = function(opts) { diff --git a/guiltouf/js/LayoutClass.js b/guiltouf/js/LayoutClass.js index 1411264..af9bcf8 100644 --- a/guiltouf/js/LayoutClass.js +++ b/guiltouf/js/LayoutClass.js @@ -97,6 +97,7 @@ Layout.prototype.createObj = function(opts) { $.extend(true, settingsObj, optsObj) ; // -- Store options + this.parent = self ; this.name = settingsObj.name || 'default' ; this.id = settingsObj.id || 'element_'+Wyrian.uniqId++ ; this.width = settingsObj.width ? settingsObj.width : self.width ; @@ -130,18 +131,20 @@ Layout.prototype.createObj = function(opts) { backgroundPosition: settingsObj.backgroundPosition, backgroundImage: settingsObj.imageSrc ? 'url('+settingsObj.imageSrc+')' : '' } - }) + }).appendTo(self.dom) ; } // -- Apply CSS this.box.css({ width: this.width, height: this.height - }).transform({'translate': this.x+'px, '+this.y+'px'}) ; + }) ; + + // -- Move + if ( ! this.settings.nomove ) { + this.box.transform({'translate': this.x+'px, '+this.y+'px'}) ; + } - // -- Append to scene - this.box.appendTo(self.dom) ; - } ; // -- Init @@ -150,6 +153,11 @@ Layout.prototype.createObj = function(opts) { this.y = this.settings.origin.y ; } ; + // -- Return instance + Obj.prototype.getInstance = function() { + return this; + } ; + // -- Draw object into scene Obj.prototype.draw = function() { if ( (this.y >= -this.height) && (this.y <= (Wyrian.height+this.height)) && this.x >= -this.width && this.x <= (Wyrian.width+this.width) ) { @@ -158,16 +166,21 @@ Layout.prototype.createObj = function(opts) { if ( this.settings.sprites ) { this.lastSprite = this.lastSprite || 0 ; this.lastSprite++ ; - if ( this.lastSprite >= this.settings.sprites.length ) - this.lastSprite = 0 ; - this.box.css({'backgroundPosition': -1*this.lastSprite*this.settings.width+'px 0'}) ; + if ( typeof this.settings.sprites[this.lastSprite] == 'undefined' ) this.lastSprite = 0 ; + this.box.css({'backgroundPosition': -1*this.settings.sprites[this.lastSprite]*this.settings.width+'px 0'}) ; + + + //if ( this.id == 'ship' ) + // console.log(this.settings.sprites, -1*this.settings.sprites[this.lastSprite]*this.settings.width+'px 0') ; } // -- Move div - if ( this.settings.moveParent ) { - this.box.parent().transform({'translate': this.x+'px, '+this.y+'px'}) ; - } else { - this.box.transform({'translate': this.x+'px, '+this.y+'px'}) ; + if ( ! this.settings.nomove ) { + if ( this.settings.moveParent ) { + this.box.parent().css({'translate': this.x+'px, '+this.y+'px'}) ; + } else { + this.box.css({'translate': this.x+'px, '+this.y+'px'}) ; + } } } @@ -178,10 +191,8 @@ Layout.prototype.createObj = function(opts) { if ( $.isFunction(this.settings.animate) ) { this.parent = self ; this.settings.animate(this) ; - this.draw(this) ; - } else { - this.draw() ; - } + } + if ( ! this.nodraw ) this.draw() ; } // -- Remove object diff --git a/guiltouf/js/layouts/BgLayer.js b/guiltouf/js/layouts/BgLayer.js index 9fef484..365d5b7 100644 --- a/guiltouf/js/layouts/BgLayer.js +++ b/guiltouf/js/layouts/BgLayer.js @@ -8,12 +8,14 @@ Layouts.Background = new Layout({ animate: function(obj) { obj.y -= obj.parent.settings.speed*obj.parent.settings.direction; obj.parent.settings.dom.css({backgroundPosition: '0 '+obj.y+'px'}) ; + obj.nodraw = true ; } }], // -- Define current Speed speed: 5, direction: -1, + nomove: true, // -- Define canvas parent dom: $('div#background') diff --git a/guiltouf/js/layouts/Ennemies.js b/guiltouf/js/layouts/Ennemies.js index 7d05adb..ab235c9 100644 --- a/guiltouf/js/layouts/Ennemies.js +++ b/guiltouf/js/layouts/Ennemies.js @@ -16,6 +16,7 @@ Layouts.Ennemies = new Layout({ // -- Create a random ennemy Layouts.Ennemies.createRandom = function(opts) { + var self = this ; var bulletConf = { name: 'ennemy', width: 60, @@ -25,12 +26,12 @@ Layouts.Ennemies.createRandom = function(opts) { sprites: [0,1,2], speed: Math.round(Math.max(10, Math.random()*20)), direction: 1, - origin: {x:Math.round(Math.random()*this.width), y:0}, + origin: {x:Math.round(Math.random()*self.width), y:Math.round(-Math.random()*self.height)}, animate: function (obj) { - if ( obj.deleteAfter ) return false; obj.y += obj.settings.speed*obj.settings.direction ; - if ( obj.y > obj.parent.height ) { - obj.deleteAfter = true ; + if ( obj.y > obj.parent.height+obj.height ) { + obj.x = Math.round(Math.random()*self.width) + obj.y = Math.round(-Math.random()*self.height) ; } } } ; diff --git a/guiltouf/js/layouts/PlayerLayer.js b/guiltouf/js/layouts/PlayerLayer.js index 108509a..a7a1bb3 100644 --- a/guiltouf/js/layouts/PlayerLayer.js +++ b/guiltouf/js/layouts/PlayerLayer.js @@ -6,18 +6,19 @@ Layouts.Player = new Layout({ el: [{ id: 'ship', width: 160, - height: 137, + height: 160, + sprites: [0,1], origin: { x: Wyrian.width/2 - 80, y: Wyrian.height-220 }, fireInterval: 300, - //moveParent: true, animate: function(obj) { // -- KEY up /down - if ( Wyrian.input.keyboard.up && obj.y > 0 ) { - obj.y -= obj.parent.settings.speed ; + if ( Wyrian.input.keyboard.up ) { + if ( obj.y > 0 ) obj.y -= obj.parent.settings.speed ; + } if ( Wyrian.input.keyboard.down && (obj.y < (Wyrian.height-obj.height) ) ) { obj.y += obj.parent.settings.speed; @@ -25,16 +26,11 @@ Layouts.Player = new Layout({ // -- Left/Right move : choose sprite sequence to display if ( Wyrian.input.keyboard.left && (obj.x > 0)) { - obj.spriteIndex = 0 ; obj.x -= obj.parent.settings.speed; } - else if ( Wyrian.input.keyboard.right && (obj.x < Wyrian.width-obj.width) ) { - obj.spriteIndex = 2 ; + if ( Wyrian.input.keyboard.right && (obj.x < Wyrian.width-obj.width) ) { obj.x += obj.parent.settings.speed; } - else { - obj.spriteIndex = 1 ; - } // -- Press Space : fire if ( Wyrian.input.keyboard.space ) { @@ -42,6 +38,22 @@ Layouts.Player = new Layout({ } } + }, { + + id: 'ship_reactor', + width: 44, + height: 68, + backgroundColor:'red', + imageSrc: '/images/sprites/reactor_fire_sprite.png', + sprites: [0,1], + nomove: true, + animate: function(obj) { + obj.settings.sprites = [0,1] ; + if ( Wyrian.input.keyboard.up ) { + obj.getInstance().settings.sprites = [2,3,4] ; + } + } + }], // -- Define current Speed @@ -66,24 +78,13 @@ Layouts.Player.bulletLib = function(obj, bulletType) { } ; // -- Default Left - if ( bulletType == 'default_left' ) { + if ( bulletType == 'default' ) { bulletConf.width = 16 ; bulletConf.height = 64 ; bulletConf.sprites = false ; bulletConf.imageSrc = '/images/12px-long-blue.png' ; bulletConf.name = 'bullet' ; - bulletConf.origin.x = obj.x+8+obj.width/2 ; - bulletConf.origin.y = obj.y - bulletConf.height ; - } - - // -- Default Right - if ( bulletType == 'default_right' ) { - bulletConf.width = 16 ; - bulletConf.height = 64 ; - bulletConf.sprites = false ; - bulletConf.imageSrc = '/images/12px-long-blue.png' ; - bulletConf.name = 'bullet' ; - bulletConf.origin.x = obj.x-8+obj.width/2 ; + bulletConf.origin.x = obj.x-6+obj.width/2 ; bulletConf.origin.y = obj.y - bulletConf.height ; } @@ -93,8 +94,8 @@ Layouts.Player.bulletLib = function(obj, bulletType) { bulletConf.height = 60 ; bulletConf.speed = 20 ; bulletConf.name = 'bullet' ; - bulletConf.origin.x = obj.x+30+obj.width/2 ; - bulletConf.origin.y = obj.y + 30 - bulletConf.height ; + bulletConf.origin.x = obj.x+20+obj.width/2 ; + bulletConf.origin.y = obj.y + 50 - bulletConf.height ; } // -- Big Left @@ -103,8 +104,8 @@ Layouts.Player.bulletLib = function(obj, bulletType) { bulletConf.height = 60 ; bulletConf.speed = 20 ; bulletConf.name = 'bullet' ; - bulletConf.origin.x = obj.x-60+obj.width/2 ; - bulletConf.origin.y = obj.y + 30 - bulletConf.height ; + bulletConf.origin.x = obj.x-75+obj.width/2 ; + bulletConf.origin.y = obj.y + 50 - bulletConf.height ; } // -- The animate function @@ -136,8 +137,7 @@ Layouts.Player.fire = function(obj) { // Create new bullets var bullets = [] ; - bullets.push(this.bulletLib(obj, 'default_left')) ; - bullets.push(this.bulletLib(obj, 'default_right')) ; + bullets.push(this.bulletLib(obj, 'default')) ; bullets.push(this.bulletLib(obj, 'big_left')) ; bullets.push(this.bulletLib(obj, 'big_right')) ; for ( var i in bullets ) { diff --git a/images/.empty b/images/.empty deleted file mode 100644 index e69de29..0000000 diff --git a/images/wings_eagle_sprite.png b/images/wings_eagle_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..05b0dfe91024f5f179679c63427d7f6c94d8fd2f GIT binary patch literal 11052 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 literal 0 HcmV?d00001