From 1df66c0c3e743bd088b4c391fde8a5df3a283454 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Wed, 16 Jul 2008 19:10:16 +0100 Subject: [PATCH] New exhaust graphic --- data/Makefile.am | 2 +- data/images/exhaust.png | Bin 0 -> 1212 bytes src/Game.cpp | 3 -- src/Ship.cpp | 63 +++++++++++++++++++--------------------- src/Ship.hpp | 4 +-- 5 files changed, 32 insertions(+), 40 deletions(-) create mode 100644 data/images/exhaust.png diff --git a/data/Makefile.am b/data/Makefile.am index 45b2ddc..49ef3e3 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -13,7 +13,7 @@ EXTRA_DIST = images/ship.png images/star.png images/start_option.png \ images/grass_surface2.png images/fuelmeter.png \ images/fuelbar.png images/speedmeter.png images/particle.png \ images/landingpad.png images/landingpadred.png images/title.png \ - images/gameover.png \ + images/gameover.png images/exhaust.png \ sounds/firework_1.wav sounds/bomb_explosion.wav \ sounds/boing1.wav \ Default_Font.ttf diff --git a/data/images/exhaust.png b/data/images/exhaust.png new file mode 100644 index 0000000000000000000000000000000000000000..21938da791a8ea9e0dba364c1e63a95fb5610689 GIT binary patch literal 1212 zcmV;t1Vj6YP)Px#24YJ`L;(K){Qz<>FpOXT000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iOM? z5(Wx+t%mCW000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000CRNklWH zA4w-s2Ojsx<&xZ;-FdIe!47q21J2w);|*qdx~6LS)zkdb-+u`H8St4}eGwT> z-oBnS5bQF+50&l9HTBDCF8qaN`kj8!u3A9Ar@+r${9)dfeWpMMYS={rlR!r;WHE)O zn4ggODzqzE0X=X;f(OtedI(xU2W}GvV2@AO=Qp%c&`^QzfonQ79Dviiw$eKqt#Bq( z%u`MDv3}J(oir`M7D&WIhrkTLJ7(kO?V5oN>>(zI4`LaiNf6p1NfXUDq+nsZ>){c7 z6iQpe9&mu8YxW492f=e1zG0@Xd7>3v?5bO%MhKx8*S3QO(;I{kAFidiA!XpAF^*rLLmr>@gQs9A&ZMUx>3l4dSCISO{ZYM9-Q9T zL3)OHj`$JKI*nJ_u*4Lg09(+Y-Aq1HZT6b5NDpL?>;XRp4wW*M@FI)f))kwv$tIn* z1HLY(fWi&1rFzr4cTuYWvvIl?Dyk9nZFM}UgARyXC3RlJjm3dP$l!muxNjL~NnT01 z0)0%&68T6Anw->C9=h{w?eg0UdeDJzVeF=>RcDGb`zGHh{DFjYrkQ|no7p;`Pqi4 zHcG7=^rY4V7|XpI7M@VqZIDW#l1^_i8@BFaesbF7Rjq8C+OotR2uYowI=Ca;C)6KC zYJ<7(;K5sG3%u~sQ%^jnW2I+wG{%A1IM^xx++;yAaDjBeD%T9V;hX~GO@2-Acg*(+ zJrJxZN)4DTNnwy#)A0vQed$}@0U19SMy0BauN3-<&=p&HRR&BU7;?zIuJa!r{3p72 zov-T}$o8H6puDPA`Y2wKK2}vAL&GdLS?IOK{@nJW{&Uy@ljHNVz6I__Bb)kdio1NN zkJ=-b1Z$DodccDk*1q=OzxX!a_{I$|ou8a;TVOttm;t5yd3YVS`A5A7BVM>CSotY~ zFTM7quY5n&w?O-77XsFga^yF)*Mq;)OxI4&7&v6$(l^=f43kIajh6p3E`SLz^*mp( zR^@;_-}?zYi8&shZ-6DRXvZBt0Q>JX2%z_ampo9%dyi*S9baA^pP!`w<|n5Iz|rV@ zlkvKLpB8XEA}25$pPwb~IUe(q)Al{2BX%diyYYoL$LD7Q{}tkY#QfxRI?~z#{UhT4 aJ^l?fSboF%k3+ct0000 0); - - // Draw the exhaust - ship.DrawExhaust(state == gsPaused); if (state != gsDeathWait && state != gsGameOver && state != gsFadeToDeath && state != gsFadeToRestart) { diff --git a/src/Ship.cpp b/src/Ship.cpp index da56f8e..f90379d 100644 --- a/src/Ship.cpp +++ b/src/Ship.cpp @@ -27,7 +27,7 @@ const Point Ship::hotspots[] = { Ship::Ship(Viewport *v) - : shipImage("images/ship.png"), + : shipImage("images/ship.png"), exhaustImage("images/exhaust.png"), xpos(0), ypos(0), speedX(0), speedY(0), angle(0), viewport(v), thrusting(false), boingSound(LocateResource("sounds/boing1.wav")) @@ -37,34 +37,38 @@ Ship::Ship(Viewport *v) void Ship::Display() { - int dx = (int)xpos - viewport->GetXAdjust(); - int dy = (int)ypos - viewport->GetYAdjust(); + double dx = xpos - viewport->GetXAdjust(); + double dy = ypos - viewport->GetYAdjust(); - shipImage.Draw(dx, dy, angle); -} - -void Ship::DrawExhaust(bool paused) -{ - static double xlast, ylast; + double width = shipImage.GetWidth(); + double height = shipImage.GetHeight(); + double e_width = exhaustImage.GetWidth(); + double e_height = exhaustImage.GetHeight(); + glEnable(GL_TEXTURE_2D); + glEnable(GL_BLEND); + glBindTexture(GL_TEXTURE_2D, shipImage.GetGLTexture()); + glLoadIdentity(); + glTranslated(dx + width/2, dy + height/2, 0.0); + glRotated(angle, 0.0, 0.0, 1.0); + glColor4d(1.0, 1.0, 1.0, 1.0); + glBegin(GL_QUADS); + glTexCoord2d(0.0, 0.0); glVertex2i(-(width/2), -(height/2)); + glTexCoord2d(0.0, 1.0); glVertex2i(-(width/2), height/2); + glTexCoord2d(1.0, 1.0); glVertex2i(width/2, height/2); + glTexCoord2d(1.0, 0.0); glVertex2i(width/2, -(height/2)); + glEnd(); + if (thrusting) { - if (sqrt(speedX*speedX + speedY*speedY) > 2.0f) { - exhaust.NewCluster - ((int)(exhaust.xpos + (exhaust.xpos - xlast)/2), - (int)(exhaust.ypos + (exhaust.ypos - ylast)/2)); - } - exhaust.Draw((double)viewport->GetXAdjust(), - (double)viewport->GetYAdjust(), true); - } - else if (paused) - exhaust.Draw((double)viewport->GetXAdjust(), - (double)viewport->GetYAdjust(), false, false); - else - exhaust.Draw((double)viewport->GetXAdjust(), - (double)viewport->GetYAdjust(), false); - - xlast = exhaust.xpos; - ylast = exhaust.ypos; + glTranslated(0.0, height/2 + e_height/2, 0.0); + glBindTexture(GL_TEXTURE_2D, exhaustImage.GetGLTexture()); + glBegin(GL_QUADS); + glTexCoord2d(0.0, 0.0); glVertex2i(-(e_width/2), -(e_height/2)); + glTexCoord2d(0.0, 1.0); glVertex2i(-(e_width/2), e_height/2); + glTexCoord2d(1.0, 1.0); glVertex2i(e_width/2, e_height/2); + glTexCoord2d(1.0, 0.0); glVertex2i(e_width/2, -(e_height/2)); + glEnd(); + } } void Ship::DrawExplosion(bool createNew) @@ -102,12 +106,6 @@ void Ship::Move() boingSound.Play(); } - exhaust.xpos = xpos + shipImage.GetWidth()/2 - - (shipImage.GetWidth()/2)*(double)sin(angle*(PI/180)); - exhaust.ypos = ypos + shipImage.GetHeight()/2 - + (shipImage.GetHeight()/2)*(double)cos(angle*(PI/180)); - exhaust.yg = speedY; //+ (flGravity * 10); - exhaust.xg = speedX; explosion.xpos = xpos + shipImage.GetWidth()/2; explosion.ypos = ypos + shipImage.GetHeight()/2; } @@ -160,7 +158,6 @@ void Ship::CentreInViewport() */ void Ship::Reset() { - exhaust.Reset(); explosion.Reset(); xpos = (double)viewport->GetLevelWidth()/2; diff --git a/src/Ship.hpp b/src/Ship.hpp index c0630fe..c1362cc 100644 --- a/src/Ship.hpp +++ b/src/Ship.hpp @@ -32,7 +32,6 @@ public: void Reset(); void Display(); - void DrawExhaust(bool paused); void DrawExplosion(bool createNew); void Move(); void ThrustOn(); @@ -59,14 +58,13 @@ private: void RotatePoints(const Point *pPoints, Point *pDest, int nCount, double angle, int adjustx=0, int adjusty=0); - Image shipImage; + Image shipImage, exhaustImage; double xpos, ypos; double speedX, speedY, angle; Viewport *viewport; Explosion explosion; - SmokeTrail exhaust; bool thrusting; SoundEffect boingSound; -- 2.39.2