From 2748b33cd1330cc3da99ed62cd17859342079773 Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Mon, 10 Feb 2014 15:08:58 +0000 Subject: M resources/b_inter.png M trunk/CHANGELOG.TXT M trunk/VERSION.TXT M trunk/background.h M trunk/levels.h M trunk/main.cpp M trunk/menus.h --- CHANGELOG.TXT | 43 +++++++++++++++++++------- VERSION.TXT | 2 +- background.h | 11 ++++--- levels.h | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- main.cpp | 21 ++++--------- menus.h | 2 +- 6 files changed, 132 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT index ddab0f9..aa76270 100755 --- a/CHANGELOG.TXT +++ b/CHANGELOG.TXT @@ -1,12 +1,26 @@ -================================================================= +=================================================================== Next version: -Maybe 0.7.0-9_PR?.. +0.7.1-1_PR Pre-Released versions: +0.7.1-0_PR (b63) +New level: Rainbow bullets - nauty photon (in fact it's a lazy +level! I must have seen the same thing some where else...) +The last "photon school" level was put to where it should be. +Rewrite some silly parts of the Changelog. +I ran out of my AppEngine quota today... So I can't commit that to +svn as planned... + +0.7.0-9_PR (b62) +Performed a couple of tests, under both full FPS mode and low FPS +mode. +New background is used by now. + 0.7.0-8_PR (b61) Improved the rendering code. More tests are required... +That made the rendering more efficient. It also eats less RAM then. --Okay it's now tested. Another bug in FPS independent bullets -fixed. No bugs found in the new rendering code. +fixed. No (big) bugs were found in the new rendering code. 0.7.0-7_PR (b60) Spring Festival commit... @@ -19,7 +33,8 @@ Experimental FPS independent bullets. 0.7.0-5_PR (b58) Fixed another critical bug in laser collision detection -implementation... Laser is almost perfect now... +implementation... Laser is almost perfect now...//Still, it's +inefficient. 0.7.0-4_PR (b57) Fixed a critical bug in laser implementation and another awful @@ -64,12 +79,12 @@ The build count is bumped four times a day, you enough! New level "Wriggle Nightbug-like"?... 0.6.1-1_PR (b46) -Implemented several unimplemented audio interfaces of hge... +Implemented several unimplemented audio interfaces of hge (OpenAL). A Windows build to check compatibility is planned. 0.6.1-0_PR (b45) Now we have 11 parts in level6... -A BGM called Canon Techno is composed around here... +A BGM called Canon Techno is completed around here... 0.6.0-0_PR (b44) Starting level 6! @@ -79,9 +94,11 @@ recorded. 0.5.3-2_PR (b43) Optimizing memory usage... (first step...)[*] Borrowed "the unbreakable jail" from old code... -//[*]Note @ 0.6.1-3: +//[*]Note @ 0.6.1-3 && @ 0.7.0-9: //1. I found this useless. //2. This may cause SIGSEGV! +//3. It's completely removed after b61. Because they are not used +// any longer 0.5.3-1_PR (b42) Final(the second last..) level for level 5, fish in a barrel? @@ -108,7 +125,7 @@ New part for level5. Now I'm working on the regression 0.4.x. 0.5.1-1_PR (b36) Several fixes including: -Fading info panel when approaching. --Sending multiplier layer up. +-Sending mult. inc. indicator layer up. 0.5.1-0_PR (b35) First two levels of level5. @@ -145,7 +162,7 @@ New levels for level3. In fact, it's almost completed now... 0.3.1-2_PR (b26) Improved bullet clearing method, avoiding hidden bullets -completely! +completely!(Just by converting them all to score points...) 0.3.1-1_PR (b25) A new "big" level for level3. @@ -168,6 +185,8 @@ This will be released as a official Preview Release version. ------------------------------------------------------------- BLR will be licensed under WTFPL from now. (WTF?) +............................................................. +No it's now licensed under the BSD license... 0.2.9_PR (b20) Level 2 is frozen "by heart". (How? By heart?) @@ -227,7 +246,7 @@ TB130818 (b7) New Levels such as rainbow towers and squashing levels. TB130802 (b6) -Discarding old code, rewrite of most of the code. +Discarding old code, rewrite of part of the code. TB130718 (b5) Bullet creation effects, sync code back to BLR1. @@ -242,7 +261,9 @@ TB130703 (b2) Completing Orange Towers. TB130620 (b1) -Completing Deep Blue Towers. +Completing Deep Blue Towers.//Well, "Dark Blue" right? Or more formally, "Navy". +//However, they are all not the real color. I used #0000FF, which is just "Blue", +//it just seems dark. TB130610 (b0) Creation of Testbed version. diff --git a/VERSION.TXT b/VERSION.TXT index 35d2849..f1f6bdf 100755 --- a/VERSION.TXT +++ b/VERSION.TXT @@ -1 +1 @@ -0.7.0-8_PR (b61) \ No newline at end of file +0.7.1-0_PR (b63) \ No newline at end of file diff --git a/background.h b/background.h index 718b42c..62c8424 100644 --- a/background.h +++ b/background.h @@ -216,7 +216,7 @@ private: public: bool Init() { - skyitem=hge->Texture_Load("e_skyitem.png"); + skyitem=hge->Texture_Load("./Resources/e_skyitem.png"); if(!skyitem) return false; sky=new hgeSprite(0, 0, 0, ScreenWidth, ScreenHeight); sea=new hgeDistortionMesh(SeaDisize, SeaDisize); @@ -457,13 +457,16 @@ public: } }; TDSky sky; +bool skyactive; DWORD ColorTransfer(DWORD a,DWORD t) { - int r=GETR(a),g=GETG(a),b=GETB(a); - int tr=GETR(t),tg=GETG(t),tb=GETB(t); + int r=GETR(a),g=GETG(a),b=GETB(a),sa=GETA(a); + int tr=GETR(t),tg=GETG(t),tb=GETB(t),ta=GETA(t); + if (sata)--sa; if (rtr)--r; if (gtg)--g; if (btb)--b; - a=SETR(a,r);a=SETG(a,g);a=SETB(a,b); + a=SETR(a,r);a=SETG(a,g);a=SETB(a,b);a=SETA(a,sa); + return a; } diff --git a/levels.h b/levels.h index 26dcd63..d6358aa 100644 --- a/levels.h +++ b/levels.h @@ -422,7 +422,7 @@ void Level3Part1() tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; else { - ++part; + IfCallLevel=false; return; } } @@ -457,7 +457,7 @@ void Level3Part2() tower[i].RendColor=tower[i].RendColor+0x01FFFFFF; else { - ++part; + IfCallLevel=false; return; } } @@ -2360,7 +2360,6 @@ void Level6Part999999999()//well this isnot an easter egg! { int pnt=CreateBullet2(rand()%780+10,590,1,pi/2); bullet[pnt].alterColor=white; - //!!TODO: Restore this later } } } @@ -2385,6 +2384,7 @@ Will there be a clearer day?\ } } //change the color to dark grey. lightning. +bool skystp; void Level7Part1() { ++bgbrk;if (LOWFPS)bgbrk+=16; @@ -2398,7 +2398,7 @@ void Level7Part1() { frameleft=AMinute,++part; bgdbbrk=rand()%15+5,bgbrk=0; - avabrk=0.2f;avacurbrk=0; + avabrk=0.2f;avacurbrk=0;skystp=false; } } void Level7Part2() @@ -2419,7 +2419,7 @@ void Level7Part2() for (int i=1;i<=times;++i)DBGColor=ColorTransfer(DBGColor,0xFF0B0916); if (DBGColor==0xFF0B0916) { - if(bgbrk==2)bgbrk=3,bgdbbrk=0.1; + if(bgbrk==2)bgbrk=3,bgdbbrk=0.075; if(bgbrk==5)bgbrk=0,bgdbbrk=rand()%15+5; } } @@ -2463,9 +2463,36 @@ void Level7Part2() } } } +//Add a background transform here... void Level7Part3() { - DBGColor=0xFF0B0916; + frameleft=TenSeconds; + if (!skystp) + { + ++bgbrk;if (LOWFPS)bgbrk+=16; + if (bgbrk<30)return; + bgbrk=0; + if (!LOWFPS) + DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF); + else + for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFFFFFFFF); + if (DBGColor==0xFFFFFFFF)skystp=skyactive=true,sky.SkySetFadeIn(),sky.SetSpeed(0); + } + else + { + ++bgbrk;if (LOWFPS)bgbrk+=16; + if (bgbrk<30)return; + bgbrk=0; + if (!LOWFPS) + DBGColor=ColorTransfer(DBGColor,0x00FFFFFF); + else + for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0x00FFFFFF); + if (DBGColor==0x00FFFFFF) + ++part; + } +} +void Level7Part4() +{ frameleft=(AMinute+ThirtySeconds);clrtime=5; DisableAllTower=false; if (IfShowTip) @@ -2484,7 +2511,7 @@ void Level7Part3() CreateTower6(400,300,600,2,1000,3,72); ++part;All2pnt(); } -void Level7Part4() +void Level7Part5() { ++frameskips; if (tower[1].towertype==6) @@ -2551,20 +2578,66 @@ void Level7Part4() } } } +void Level7Part6() +{ + frameleft=AMinute;clrtime=2; + DisableAllTower=false; + if (IfShowTip) + { + IfShowTip=false; + FadeTip=false; + Current_Position=2; + ShowTip("Hit Z..."); + } + if (Current_Position==1) + { + ++part;All2pnt();avabrk=1.0f;avacurbrk=0; + } +} +void Level7Part7() +{ + avabrk=frameleft/(double)AMinute*0.6f+0.4f; + avacurbrk+=hge->Timer_GetDelta(); + if (avacurbrk>avabrk) + { + avacurbrk=0; + bool lasta,lastb; + lasta=rand()%1000<500;lastb=rand()%1000<500; + for (int i=0;i<31;++i) + { + int rf=rand()%1000; + if ((lasta&&rf<600)||(!lasta&&rf<250)) + { + int pnt=CreateBullet2(-15,i*20,2,pi); + bullet[pnt].alterColor=(TColors)(i%8); + bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002; + lasta=true; + }else lasta=false; + rf=rand()%1000; + if ((lastb&&rf<600)||(!lastb&&rf<250)) + { + int pnt=CreateBullet2(815,i*20-10,2,0); + bullet[pnt].alterColor=(TColors)(i%8); + bullet[pnt].limv=2+2*(AMinute-frameleft)/(double)AMinute;bullet[pnt].bulletaccel=0.002; + lastb=true; + }else lastb=false; + } + } +} BulletSine bnl[100]; double ykbrk; -void Level7Part5()//This should be another part. +void Level7Part8()//This should be another part. { memset(bnl,0,sizeof(bnl)); frameleft=AMinute; - ykbrk=1.1f;++part; + ykbrk=0.5f;++part; } -void Level7Part6() +void Level7Part9() { ykbrk-=hge->Timer_GetDelta(); - if (ykbrk<0) + if (ykbrk<0&&frameleft>TenSeconds/10*3) { - ykbrk=(double)frameleft/AMinute+0.1; + ykbrk=(double)frameleft/AMinute+0.5f; for (int i=0;i<100;++i) if (!bnl[i].active) { diff --git a/main.cpp b/main.cpp index 81a9d55..76f0d26 100644 --- a/main.cpp +++ b/main.cpp @@ -175,17 +175,14 @@ void ProcessPlayer() { if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT&&clrrange==0/*&&clrtime+clrbns*/&&!diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; clrmaxrange=0;clrind=0; } if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_HIT&&clrrange==0/*&&clrtime+clrbns*/&&diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; clrmaxrange=0;clrind=0; } if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_KEEP&&clrrange==0/*&&clrtime+clrbns*/&&!diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; if (clrmaxrange<=400) { if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1; @@ -195,7 +192,6 @@ void ProcessPlayer() } if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_KEEP&&clrrange==0/*&&clrtime+clrbns*/&&diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; if (clrmaxrange<=400) { if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1; @@ -234,17 +230,14 @@ void ProcessPlayer() { if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_HIT&&clrrad-pi/2<1e-7&&clrtime+clrbns&&!diffkey) { - //Player_Clear_Rotate();--clrtime;++clrusg; clrmaxrange=0;clrind=0; } if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_HIT&&clrrad-pi/2<1e-7&&clrtime+clrbns&&diffkey) { - //Player_Clear_Rotate();--clrtime;++clrusg; clrmaxrange=0;clrind=0; } if (hge->Input_GetKeyStateEx(HGEK_Z)==HGEKST_KEEP&&clrrange==0&&clrtime+clrbns&&!diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; if (clrmaxrange<=400) { if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1; @@ -254,7 +247,6 @@ void ProcessPlayer() } if (hge->Input_GetKeyStateEx(HGEK_X)==HGEKST_KEEP&&clrrange==0&&clrtime+clrbns&&diffkey) { - //Player_Clear_Expand();--clrtime;++clrusg; if (clrmaxrange<=400) { if (LOWFPS)clrmaxrange+=1.6;else clrmaxrange+=0.1; @@ -408,6 +400,7 @@ void CallLevels() if (level==7&&part==4)Level7Part4(); if (level==7&&part==5)Level7Part5(); if (level==7&&part==6)Level7Part6(); + if (level==7&&part==7)Level7Part7(); /*if (level==1&&part==3)Level1Part3(); if (level==1&&part==4)Level1Part4(); if (level==1&&part==5)Level1Part5(); @@ -534,12 +527,9 @@ bool FrameFunc() //Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!** //******Super Spliter!*****Super Spliter!*****Super Spliter!*****Super Spliter!*************** hge->Gfx_BeginScene(); - for(int i=0;i<4;i++) - { - quad.v[i].z=0.5f; - quad.v[i].col=DBGColor; - } - hge->Gfx_Clear(DBGColor); + for(int i=0;i<4;i++)quad.v[i].col=DBGColor; + hge->Gfx_Clear(SETA(DBGColor,0xFF)); + if (skyactive)sky.Update(),sky.Render(); hge->Gfx_RenderQuad(&quad); if (Current_Position==0||Current_Position==3||Current_Position==8|| Current_Position==9||Current_Position==10||Current_Position==13||Current_Position==14) @@ -555,7 +545,7 @@ bool FrameFunc() //If we are at the main scene or tip scene(which towers and bullets should still appear..) //Render towers, bullets and player. if (Leaves.IsActive())Leaves.Update(); - //Sky.Update(); + if (LE_Active||Head){if (!Head)Tail=Head=new Leaf_Anim(),Head->init(990);Head->Process();} shots=0; dsmc=0; @@ -778,6 +768,7 @@ int main() TSflake=hge->Texture_Load("./Resources/e_sflake.png"); TexTitle=hge->Texture_Load("./Resources/title.png"); TexCredits=hge->Texture_Load("./Resources/credits.png"); + sky.Init(); snd=hge->Effect_Load("./Resources/tap.ogg"); titlespr=new hgeSprite(TexTitle,0,0,640,320); playerspr=new hgeSprite(SprSheet,0,24,24,24); diff --git a/menus.h b/menus.h index f5aa36c..6fb523c 100644 --- a/menus.h +++ b/menus.h @@ -93,7 +93,7 @@ void StartGUI_FrameFnk() playerpos.x=400,playerpos.y=400,playerrot=0; frameleft=ThirtySeconds;infofade=0xFF;Dis8ref=false; level=1,part=1;frms=0,averfps=0.0;bsscale=1; - towcnt=bulcnt=0;whrcnt=12; + towcnt=bulcnt=0;whrcnt=12;skyactive=false; score=0;Mult_Init();//Music_Init("./Resources/Music/CanonTechno.ogg"); lpst=4625568;lped=9234584;//Music_Play(); coll=semicoll=clrusg=0;playerLockX=playerLockY=false; -- cgit v1.2.3