From 60e6a56d014b529e7d2d4d6ad6b9a7959c99b108 Mon Sep 17 00:00:00 2001 From: Stefan Sundin Date: Tue, 23 Dec 2014 18:52:39 -0800 Subject: [PATCH] Planetoids 1.0. Original date: 2008-05-27. --- Main.dsp | 4 ++ Main.ncb | Bin 189440 -> 205824 bytes Main.opt | Bin 53760 -> 53760 bytes Main.plg | 25 ++++++++++ MainFrame.cpp | 98 +++++++----------------------------- MainFrame.h | 5 +- fysik/ObjectX.cpp | 17 ++++++- fysik/ObjectX.h | 3 ++ memdc.h | 124 ---------------------------------------------- system-all.txt | 10 ---- system.txt | 10 ---- 11 files changed, 68 insertions(+), 228 deletions(-) delete mode 100644 memdc.h delete mode 100644 system-all.txt delete mode 100644 system.txt diff --git a/Main.dsp b/Main.dsp index c07fdd3..8bb520c 100644 --- a/Main.dsp +++ b/Main.dsp @@ -160,5 +160,9 @@ SOURCE=.\fysik\Vector.cpp SOURCE=.\fysik\Vector.h # End Source File +# Begin Source File + +SOURCE="C:\Program\Microsoft Visual Studio\VC98\Lib\WINMM.LIB" +# End Source File # End Target # End Project diff --git a/Main.ncb b/Main.ncb index 81a8b154ffd2404189fdb2315284a3d3c16b1cb4..bc2bd2c1576ed164fef22000049cb34757e1e14c 100644 GIT binary patch delta 22676 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 literal 53760 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

Command Lines

+Creating temporary file "C:\DOCUME~1\ky89piho\LOKALA~1\Temp\RSP1E4.tmp" with contents +[ +/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /Fp"Release/Main.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +"D:\Prog C\MFC\Spel\Planetoids\MainFrame.cpp" +] +Creating command line "cl.exe @C:\DOCUME~1\ky89piho\LOKALA~1\Temp\RSP1E4.tmp" +Creating temporary file "C:\DOCUME~1\ky89piho\LOKALA~1\Temp\RSP1E5.tmp" with contents +[ +resources.res /nologo /subsystem:windows /incremental:yes /pdb:"Release/Planetoids.pdb" /machine:I386 /out:"Release/Planetoids.exe" +".\Release\Animation.obj" +".\Release\Main.obj" +".\Release\MainFrame.obj" +".\Release\MyWinApp.obj" +".\Release\Object.obj" +".\Release\ObjectX.obj" +".\Release\Physics.obj" +".\Release\Player.obj" +".\Release\Vector.obj" +"C:\Program\Microsoft Visual Studio\VC98\Lib\WINMM.LIB" +] +Creating command line "link.exe @C:\DOCUME~1\ky89piho\LOKALA~1\Temp\RSP1E5.tmp" +

Output Window

+Compiling... +MainFrame.cpp +Linking... diff --git a/MainFrame.cpp b/MainFrame.cpp index 7c84c39..2339279 100644 --- a/MainFrame.cpp +++ b/MainFrame.cpp @@ -4,7 +4,8 @@ #include #include #include -#include "memdc.h" +#include +#include #include "fysik/ObjectX.h" const double pi=3.14159265358979323846; @@ -20,7 +21,6 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_VSCROLL() ON_WM_HSCROLL() ON_WM_MOUSEWHEEL() -// ON_WM_SIZE() ON_COMMAND(IDM_MENU_RESET,OnMenuReset) ON_COMMAND(IDM_MENU_OPEN,OnMenuOpen) ON_COMMAND(IDM_MENU_ADD,OnMenuAdd) @@ -96,16 +96,23 @@ void CMainFrame::collide(Object* obj1, Object* obj2) { ss << damage; animations.push_back(Animation(missile->getPosition(),"Damage",ss.str())); planet->SetHP(planet->GetHP()-damage); - if (planet->GetHP() <= 0) { + if (planet->GetHP() <= 0 && planet->getName() != "Meteor") { if (planet->getName() == "Sun") { animations.push_back(Animation(missile->getPosition(),"Supernova")); + PlaySound("Supernova.wav", NULL, SND_FILENAME | SND_ASYNC); } - else { + else{ animations.push_back(Animation(missile->getPosition(),"Megasplosion")); + PlaySound("Planet.wav", NULL, SND_FILENAME | SND_ASYNC); } } else { animations.push_back(Animation(missile->getPosition(),"Explosion")); + stringstream bomb; + bomb << "bomb-0"; + bomb << (2+rand()%4); + bomb << ".wav"; + PlaySound(bomb.str().c_str(), NULL, SND_FILENAME | SND_ASYNC); } } @@ -137,32 +144,14 @@ void CMainFrame::collide(Object* obj1, Object* obj2) { engine->removeObject(planet); } engine->removeObject(missile); - /*planet->updateRadius(planet->getRadius()*0.8); - if (planet->getRadius()/scale <= 2) { - engine->removeObject(planet); - }*/ - //planet->updateMass(planet->getMass()*0.9); } else if (name1 == "Blackhole" || name2 == "Blackhole") { ObjectX *blackhole=(ObjectX*)(name1=="Blackhole"?obj1:obj2); ObjectX *planet=(ObjectX*)(blackhole==obj1?obj2:obj1); - //animations.push_back(Animation(planet->getPosition(),"Explosion")); blackhole->updateRadius(blackhole->getRadius()+0.5*planet->getRadius()); blackhole->updateMass(blackhole->getMass()+0.5*planet->getMass()); engine->removeObject(planet); } - /*else { - double newRadius=(obj1->getRadius()+obj2->getRadius())/2; - obj1->updateRadius(newRadius); - obj2->updateRadius(newRadius); - }*/ - /*else { - Vector vel1=obj1->getVelocity(); - Vector vel2=obj2->getVelocity(); - obj1->setVelocity(vel2); - obj2->setVelocity(vel1); - }*/ - } void CMainFrame::OnMenuReset() { @@ -229,8 +218,9 @@ void CMainFrame::LoadSystem(string fn) { speed.SetPos(timestep); float pos,vel,rad,m; unsigned char r,g,b; + int h; char name[100]; - while (fscanf(f,"%f\t%f\t%f\t%f\t%s\t%d,%d,%d",&pos,&vel,&rad,&m,name,&r,&g,&b) != EOF) { + while (fscanf(f,"%f\t%f\t%f\t%f\t%s\t%d,%d,%d\t%d",&pos,&vel,&rad,&m,name,&r,&g,&b,&h) != EOF) { for (char *c=name; *c != '\0'; c++) { if (*c == '_') { *c=' '; @@ -242,11 +232,8 @@ void CMainFrame::LoadSystem(string fn) { y=pos*sin(angle*pi/180); velx=vel*cos((90+angle)*pi/180); vely=vel*sin((90+angle)*pi/180); - ObjectX *newobject=new ObjectX(Vector(x,y), Vector(velx,vely), rad, m, name, r,g,b); + ObjectX *newobject=new ObjectX(Vector(x,y), Vector(velx,vely), rad, m, name, r,g,b,h); engine->addObject(newobject); - if(name=="Sun"){ - newobject->SetHP(10000); - } } fclose(f); file=fn; @@ -273,19 +260,13 @@ void CMainFrame::SaveSystem(string fn) { float position,velocity; position=sqrt(pow(pos.getX(),2)+pow(pos.getY(),2)); velocity=sqrt(pow(vel.getX(),2)+pow(vel.getY(),2)); - fprintf(file,"%f\t%f\t%f\t%f\t%s\t%d,%d,%d\n",position,velocity,p->getRadius(),p->getMass(),name,p->getColorR(),p->getColorG(),p->getColorB()); + fprintf(file,"%f\t%f\t%f\t%f\t%s\t%d,%d,%d\t%d\n",position,velocity,p->getRadius(),p->getMass(),name,p->getColorR(),p->getColorG(),p->getColorB(),p->GetHP()); } fclose(file); } } void CMainFrame::OnPaint() { - //Flicker free DC -/* CPaintDC loldc(this); - CRect rect; - GetClientRect(rect); - CMemDC dc(&loldc,&rect); -*/ CPaintDC dc(this); dc.SetTextAlign(TA_CENTER); @@ -435,7 +416,7 @@ void CMainFrame::OnPaint() { CBrush brush; CRect planetrect(middle_x+planet_x-radius,middle_y+planet_y-radius, middle_x+planet_x+radius,middle_y+planet_y+radius); - if (!start && name != "Blackhole" && name != "Sun" && p1.GetPlanet() != planet && p2.GetPlanet() != planet && planetrect.PtInRect(MousePos)) { + if (!start && name != "Blackhole" && name != "Sun" && name != "Meteor" && p1.GetPlanet() != planet && p2.GetPlanet() != planet && planetrect.PtInRect(MousePos)) { brush.CreateSolidBrush(RGB(255,0,0)); } else { @@ -533,7 +514,7 @@ void CMainFrame::OnTimer(UINT nIDEvent) { for(int o=0; o < objects->size(); o++){ ObjectX *missile=(ObjectX*)objects->at(o); if(missile->getName() == "Missile"){ - if(missile->getTime() > 10000002000){ + if(missile->getTime() > 1000000000){ animations.push_back(Animation(missile->getPosition(),"Explosion")); engine->removeObject(missile); } @@ -576,35 +557,6 @@ void CMainFrame::OnTimer(UINT nIDEvent) { scale=stdscale; zoom.SetPos(scale); } - /*if (keys['Z']) { - scale++; - zoom.SetPos(scale); - } - if (keys['X']) { - if (scale != 1) { - scale--; - zoom.SetPos(scale); - } - } - if (keys['C']) { - scale+=1000; - zoom.SetPos(scale); - } - if (keys['V']) { - scale=(scale-1000<1?1:scale-1000); - zoom.SetPos(scale); - } - if (keys['B']) { - scale+=50000; - zoom.SetPos(scale); - } - if (keys['N']) { - scale=(scale-50000<1?1:scale-50000); - zoom.SetPos(scale); - }*/ - /*if (keys['X']) { - animations.push_back(Animation(Vector(0,0),"Explosion")); - }*/ if (keys[' ']) { nuke++; if (nuke == 3) { @@ -744,11 +696,6 @@ void CMainFrame::OnKeyDown(UINT nChar, UINT nRep, UINT nFlags) { if (winner && nChar == 13) { OnMenuReset(); } -/* - char text[100]; - sprintf(text,"nChar: %d", nChar); - MessageBox(text,"char"); -*/ } void CMainFrame::OnKeyUp(UINT nChar, UINT nRep, UINT nFlags) { @@ -773,7 +720,7 @@ void CMainFrame::OnLButtonDown(UINT nFlags, CPoint pt) { for (int i=0; i < objects->size(); i++) { ObjectX *planet=(ObjectX*)objects->at(i); string name=planet->getName(); - if (name != "Sun" && name != "Blackhole") { + if (name != "Sun" && name != "Blackhole" && name != "Meteor") { int planet_x=planet->getPosition().getX()/scale; int planet_y=-planet->getPosition().getY()/scale; int radius=planet->getRadius()/scale; @@ -829,7 +776,6 @@ void CMainFrame::OnVScroll(UINT nSBCode, UINT nPos, CWnd *pSlider) { CSliderCtrl *pSld; pSld=(CSliderCtrl*)pSlider; scale=pSld->GetPos(); - //scale=(scale==1?1:scale); this->SetFocus(); } @@ -851,11 +797,3 @@ BOOL CMainFrame::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) { zoom.SetPos(scale); return 1; } - -void CMainFrame::OnSize() { -/* - CRect window; - GetClientRect(&window); - zoom.GetBuddy()->SetWindowPos(&wndTop,200,200,200,200,SWP_SHOWWINDOW); -*/ -} diff --git a/MainFrame.h b/MainFrame.h index 73c3fbf..018eb73 100644 --- a/MainFrame.h +++ b/MainFrame.h @@ -14,16 +14,18 @@ using namespace std; #define IDC_SLH_ZOOM 300 #define IDC_SLH_SPEED 301 +//Vi var tvungen att använda static för att kollisions callback funktionen skulle kunna komma +//åt variablerna static Physics *engine; static Player p1; static Player p2; -static int winner; static bool start; static vector animations; static __int64 scale; class CMainFrame: public CFrameWnd { private: + int winner; CMenu menu; CSliderCtrl zoom, speed; vector *objects; @@ -63,7 +65,6 @@ class CMainFrame: public CFrameWnd { afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CWnd *pSlider); afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CWnd *pSlider); afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); - afx_msg void OnSize(); DECLARE_MESSAGE_MAP(); }; diff --git a/fysik/ObjectX.cpp b/fysik/ObjectX.cpp index 29f82cb..f0a70c9 100644 --- a/fysik/ObjectX.cpp +++ b/fysik/ObjectX.cpp @@ -1,6 +1,7 @@ #include "ObjectX.h" -ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name): Object(p_position, p_velocity, p_radius, p_mass, p_name) +ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name) +: Object(p_position, p_velocity, p_radius, p_mass, p_name) { m_color_r=0; m_color_g=0; @@ -9,7 +10,8 @@ ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p hp=100; } -ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name, unsigned char p_color_r, unsigned char p_color_g, unsigned char p_color_b): Object(p_position, p_velocity, p_radius, p_mass, p_name) +ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name, unsigned char p_color_r, unsigned char p_color_g, unsigned char p_color_b) +: Object(p_position, p_velocity, p_radius, p_mass, p_name) { m_color_r=p_color_r; m_color_g=p_color_g; @@ -18,6 +20,17 @@ ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p hp=100; } +ObjectX::ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name, unsigned char p_color_r, unsigned char p_color_g, unsigned char p_color_b, int p_hp) +: Object(p_position, p_velocity, p_radius, p_mass, p_name) +{ + m_color_r=p_color_r; + m_color_g=p_color_g; + m_color_b=p_color_b; + time=0; + hp=p_hp; + +} + Vector ObjectX::getVelocity() const { return m_velocity; diff --git a/fysik/ObjectX.h b/fysik/ObjectX.h index 0317441..f9c21ed 100644 --- a/fysik/ObjectX.h +++ b/fysik/ObjectX.h @@ -4,6 +4,8 @@ #include "Object.h" #include "Vector.h" +//Vi extendade deras object class + class ObjectX: public Object { protected: @@ -16,6 +18,7 @@ class ObjectX: public Object public: ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name); ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name, unsigned char p_color_r, unsigned char p_color_g, unsigned char p_color_b); + ObjectX(Vector p_position, Vector p_velocity, double p_radius, double p_mass, std::string p_name, unsigned char p_color_r, unsigned char p_color_g, unsigned char p_color_b, int p_hp); Vector getVelocity() const; double getMass() const; diff --git a/memdc.h b/memdc.h deleted file mode 100644 index fb542f5..0000000 --- a/memdc.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef _MEMDC_H_ -#define _MEMDC_H_ - -////////////////////////////////////////////////// -// CMemDC.h - memory DC -// -// This class implements a memory Device Context which allows -// flicker free drawing. - -//WITH FIX FROM Feng Yuan -// explanation here: -// The return value from MFC's SelectObject is a pointer to a temporary CBitmap object, -// but GDI's SelectObject always return a handle. -// Just save the GDI Handle and select it back. - - -class CMemDC : public CDC { -private: - - - CBitmap m_bitmap; // Offscreen bitmap - CBitmap* m_pbitmap; // Offscreen bitmap - - CBitmap* m_poldBitmap; // bitmap originally found in CMemDC - CDC* m_pDC; // Saves CDC passed in constructor - CRect m_rect; // Rectangle of drawing area. - BOOL m_bMemDC; // TRUE if CDC really is a Memory DC. - - HGDIOBJ m_hOldBitmap; - HGDIOBJ m_hBitmap; -public: - - - CMemDC(CDC* pDC, const CRect* pRect = NULL) : CDC() - { - ASSERT(pDC != NULL); - - // Some initialization - m_pDC = pDC; - - m_poldBitmap = NULL; - m_bMemDC = !pDC->IsPrinting(); - - // Get the rectangle to draw - if (pRect == NULL) { - pDC->GetClipBox(&m_rect); - } else { - m_rect = *pRect; - } - - if (m_bMemDC) { - - // Create a Memory DC - CreateCompatibleDC(pDC); - - pDC->LPtoDP(&m_rect); - - m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height() ); - - m_pbitmap = &m_bitmap; - m_hBitmap = ((HBITMAP)m_pbitmap->GetSafeHandle() ); - - m_poldBitmap = ((CBitmap*)SelectObject(&m_bitmap)); - - m_hOldBitmap = ((HBITMAP)m_poldBitmap->GetSafeHandle() ); - - - SetMapMode(pDC->GetMapMode()); - SetWindowExt(pDC->GetWindowExt()); - SetViewportExt(pDC->GetViewportExt()); - - pDC->DPtoLP(&m_rect); - - SetWindowOrg(m_rect.left, m_rect.top); - - - } else { - // Make a copy of the relevent parts of the current - // DC for printing - m_bPrinting = pDC->m_bPrinting; - m_hDC = pDC->m_hDC; - m_hAttribDC = pDC->m_hAttribDC; - } - - - - } - - ~CMemDC() - { - - if (m_bMemDC) { - // Copy the offscreen bitmap onto the screen. - m_pDC->BitBlt(m_rect.left, m_rect.top, - m_rect.Width(), m_rect.Height(), - this, m_rect.left, m_rect.top, SRCCOPY); - - SelectObject(m_hOldBitmap); - ::DeleteObject(m_hBitmap); - - - } else { - // All we need to do is replace the DC with an illegal - // value, this keeps us from accidentally deleting the - // handles associated with the CDC that was passed to - // the constructor. - m_hDC = m_hAttribDC = NULL; - } - - } - - // Allow usage as a pointer - CMemDC* operator->() - { - return this; - } - - // Allow usage as a pointer - operator CMemDC*() - { - return this; - } -}; -#endif diff --git a/system-all.txt b/system-all.txt deleted file mode 100644 index b73bb91..0000000 --- a/system-all.txt +++ /dev/null @@ -1,10 +0,0 @@ -915112529 250000 -0 0 1.9550e10 1.9891e30 Sun -69816900e3 47870 4.4397e9 3.3022e23 Mercury -108942109e3 35020 8.0518e9 4.8685e24 Venus -152097701e3 29783 8.3710e9 5.9736e24 Tellus -249209300e3 24077 5.3962e9 6.4185e23 Mars -816520800e3 13070 9.1492e9 1.8986e27 Jupiter -1513325783e3 9690 8.0268e9 5.6846e26 Saturn -3004419704e3 6810 4.5559e9 8.6810e25 Uranus -4553946490e3 5430 4.4764e9 1.0243e26 Neptune diff --git a/system.txt b/system.txt deleted file mode 100644 index 18e6e96..0000000 --- a/system.txt +++ /dev/null @@ -1,10 +0,0 @@ -915112529 1250000 -0 0 1.9550e10 1.9891e30 Sun 255,255,0 -69816900e3 47870 4.4397e9 3.3022e23 Mercury 198,198,198 -108942109e3 35020 8.0518e9 4.8685e24 Venus 106,103,96 -152097701e3 29783 8.3710e9 5.9736e24 Tellus 80,206,103 -249209300e3 24077 5.3962e9 6.4185e23 Mars 254,175,96 -53316900e3 45000 2e9 4000 Meteor 198,198,198 -58316900e3 48000 2e9 4000 Meteor 198,198,198 -50316900e3 51000 2e9 4000 Meteor 198,198,198 -54316900e3 50000 2e9 4000 Meteor 198,198,198