💬
Logga in
Fuska.se

Mitt Första Grafiska C++ Program Med 2d Fysik

32 svar · startad

Nivå 9 · Veteranfuskare
Trådstartare #1

Här är mitt första C++ program som har en integrerad 2d fysikmotor! Den grafiska delen använder sig utav SDL.

 

Ladda ner(v1.4b):

Physcpp.rar

 

 

Vad tycker ni? Vad kan jag förbättra?

 

Då många undrar vad exakt detta är så här är min beskrivning:

"En applikation som laddar en fyrkantig 2d bild, placerar sedan in den i programmet och släpper ner den(och knuffar den mot höger) för att demonstrera fysikmotorn, i de nyare versionerna kan man även knuffa bollen önskad riktning med piltangenterna".

Senast ändrad:

Nivå 5 · Fuskare
#2

hmm moste den öppnas med dos?

Nivå 9 · Veteranfuskare
Trådstartare #3

Nej, .exe filen öppnas med Windows. Om du inte har Windows och inte kan köra .exe filer så kan du kolla på www.winehq.org och använda WINE om ditt operativsystem stödjer det, annars om du är en avancerad användare som klarar att installera en C++ kompilator och även bibloteket SDL så rekommenderar jag dig att göra det.

Senast ändrad:

Nivå 5 · Fuskare
#4

okej själv kodar jag i vb8 :D

#5

Kan du förklara vad programmet gör?

 

 

 

#6

ladda ner och kolla bara -.-

#7

Ok Hoppas bara att det är nåt bra nu Vitdom!

Senast ändrad:

Nivå 7 · Fuskare
#8

Nice! :)

Nivå 1 · Novis
#9

Nice.

Nivå 4 · Lärling
#10

Jag förstår verkligen inte vad det är XD, men om du gjort allt själv inklusive rendering enginen och allt möjligt så bra jobbat.

24 Sep 2008
Nivå 9 · Veteranfuskare
Trådstartare #11
↗ till inlägget

Jag förstår verkligen inte vad det är XD, men om du gjort allt själv inklusive rendering enginen och allt möjligt så bra jobbat.

Ja jag har skrivit rendereringsmotorn(jag använder bara kommandon som SDL har gett mig för att utföra grafiska saker på skärmen(så som att flytta "pennan" till x, y pixlarna och ladda en bild och värkställa en bild på skärmen och så)), och fysikmotorn har jag skrivit helt själv.

 

Släppte ny version, fixar och uppdateringar(1.1):

  • Fixade koden, onödig kod och stavfel i en kommentar.
  • Uppdaterade fysikmotorn, objektet kunde för en uppdatering delvis försvinna under golvet.
  • Bytte ut kvadraten mot en sfär.
  • Luftmotståndet är nu ca dubbelt så hög.

Senast ändrad:

#12

Ja, men jag fattar fortfarande inte vad programmet är till för.

 

 

Nivå 9 · Veteranfuskare
Trådstartare #13
↗ till inlägget

Ja, men jag fattar fortfarande inte vad programmet är till för.

Pröva läs första inlägget.

 

Ny version släppt! Nytt i version 1.2:

  • Ändrade grafik på cirkeln
  • Förbättrade fysikmotorn
  • Nu kan man stänga programmet med Windows kryss knapp
  • Lade till interaktion med användaren, man kan nu använda pilknapparna för att öka hastigheten mot önskad riktning
  • Kanske något annat, jag kommer inte ihåg.. :P
  • Tog bort kommentarerna, orkar inte med att ha dem

Senast ändrad:

25 Sep 2008
Nivå 4 · Lärling
#14

Riktigt nice, använder du getsyncstate eller getkeystate(minns inte riktigt vad det var) för att få interaktion med användaren?

26 Sep 2008
Nivå 9 · Veteranfuskare
Trådstartare #15

Nej, först skapar jag ett objekt av typen SDL_Event, den innehåller tre objekt som jag använder: type(Uint8), key(SDL_KeyboardEvent) och quit(SDL_QuitEvent).

 

I slutet av min main loop avänder jag satsen "SDL_PollEvent(&event);" som undersöker(VÄNTAR INTE) om det finns nya events och lägger sedan in de nya eventsen i event(jag skickar event till SDL_PollEvent som en minnesadress då den vill ha en pekare till en SDL_Event(som är samma sak som en minnesadress(den pekar på objektet i minnet))).

 

Sedan undersöker jag event.type vilken typ det är med min switch sats(SDL_KEYDOWN och SDL_QUIT(denna borde man förstå bara man kollar på koden)). Om det är en event av typen SDL_KEYDOWN(att en tangent TRYCKS NER(inte ÄR NER TRYCKT)) så körs den satsen, där jag har några if, else if och else vilkor. Den testar event.key.keysym.sym. Sym objektet som jag testar är ett objekt av typen SDLKey som är en enum.

 

Hoppas du förstod.

Senast ändrad:

Nivå 7 · Fuskare
#16

Bra studsfysik...

# Du skulle kunna göra det lite snyggare. Nu är det väl itnt meningen att det ska vara snyggt.

# När man håller nere uppil och sen trycker på ex. vänsterpil så slutar bollen att röra sig uppåt.

Nivå 9 · Veteranfuskare
Trådstartare #17
↗ till inlägget

Bra studsfysik...

# Du skulle kunna göra det lite snyggare. Nu är det väl itnt meningen att det ska vara snyggt.

# När man håller nere uppil och sen trycker på ex. vänsterpil så slutar bollen att röra sig uppåt.

Tack för tipset med rörelsesaken, har fixat det nu, släpper det i nästa version.

 

Jag har även rättat till en bugg då om bollen var så nära taket som möjligt(utan att studsa) så stannade den kvar där tills man tryckte på upp/nerpilen.

 

Vad menar du med snyggare?

Nivå 7 · Fuskare
#18
↗ till inlägget
↗ till inlägget

Bra studsfysik...

# Du skulle kunna göra det lite snyggare. Nu är det väl itnt meningen att det ska vara snyggt.

# När man håller nere uppil och sen trycker på ex. vänsterpil så slutar bollen att röra sig uppåt.

Tack för tipset med rörelsesaken, har fixat det nu, släpper det i nästa version.

 

Jag har även rättat till en bugg då om bollen var så nära taket som möjligt(utan att studsa) så stannade den kvar där tills man tryckte på upp/nerpilen.

 

Vad menar du med snyggare?

 

Jo, jag märkte edn buggen att bollen fastnade.

Med snyggar tänkte jag först att man kunde se bollen surra när den rullar. Men det är bara onödigt.

27 Sep 2008
Nivå 1 · Novis
#19

Kanske öka upplösningen i spelet istället för att ha 800x600.

Nivå 9 · Veteranfuskare
Trådstartare #20
↗ till inlägget

Kanske öka upplösningen i spelet istället för att ha 800x600.

Vad menar du med öka upplösningen istället för att ha 800x600? Ska jag öka till 1024x768? :huh:

 

Har fixat några fler buggar nu, släpper nog snart en ny version. Först måste jag bestämma mig för om jag ska uppdatera grafiken. Någon som har förslag på t.ex bakgrunder, bollar med mera?

Senast ändrad:

Vill du vara med i diskussionen?

Bli medlem Logga in