Jag har en klass (CSpaceShip), en för varje spelare (2 just nu). Sen har jag klassen CAsteroid som hanterar alla asteroider.
Vart ska jag lägga koden för att testa kollision?
Just nu har jag inte implementerat missiler, men när jag gör det och de ska kunna krocka med både CSpaceShip och asteroider, var ska jag lägga den koden då?
Vill kontrollera efter kollisioner i Collision, men hur får jag reda på asteroiderna då? Eftersom jag inte kan anropa asteroids objektet ifrån CSapceShip.
Jag har just nu inte tid att sätta mig in i ditt problem, Alpha II. Men en gyllene regel är att tänka över vilka ansvarsområden objekten ska ha. Det är ofta förespråkat att klasser ska ha så lite ansvar som möjligt och egentligen bara representera objektet i sig. Exempelvis består en stol av fyra ben, men den har ingen inbyggd förmåga att vandra iväg av sig själv eller hålla koll på avståndet till andra stolar ;)
Så hur bör jag bäst hantera detta problem? Har lite problem att förstå OOP, när man ska lägga nånting i en viss klass, hur de ska hantera varandra och när man ska ha separata funktioner.
Just nu har jag en fil som heter asteroids.h/cpp och en som heter spaceship.h/cpp. Hur ska jag dela upp det isf? Lägga allt i en fil och kalla de objects, eller vad är bäst?
Jag har lyckats med att göra en abstrakt basklass som de andra klassena ärver ifrån. Men om jag f rösöker anropa funktioner hos en CSpaceShip som inte finns med i basklassen blir det fel. Hur ska jag lösa detta???
Ingen som kommer på vad som är fel? :(
Ska jag göra som jag hade innan där jag testade efter kollision i CSpaceShip? Problemet är ju att jag också måste testa efter kollisioner i CMisisle också....
I'm sorry :r ... men om jag ska tala för mig själv så är det som så att jag inte har tid. Sitter just nu i finalen på protokollabbarna från skolan (programmera routing med dynamiska vägvalstabeller).. kikar nu in som hastigast bara för att se om ni sköter er :e
Såg dock din kod tidigare, det verkar inte helt trivialt så jag prioriterade mina egna kymmer :l
Men wF vimlar ju av C++ hackers så nån borde väl nu för böveln ta sig an Alpha II !
Ingen som kommer på vad som är fel? :(
Ska jag göra som jag hade innan där jag testade efter kollision i CSpaceShip? Problemet är ju att jag också måste testa efter kollisioner i CMisisle också....
När kraschar programmet? Direkt vid uppstart? Vid en kollisionstest?
Har du tillgång till en debugger så underlättar det avsevärt då du enkelt kan stega igenom och kapsla in var problemet ligger.
Jag har en klass (CSpaceShip), en för varje spelare (2 just nu). Sen har jag klassen CAsteroid som hanterar alla asteroider.
Vart ska jag lägga koden för att testa kollision?
Just nu har jag inte implementerat missiler, men när jag gör det och de ska kunna krocka med både CSpaceShip och asteroider, var ska jag lägga den koden då?
Varför skapar du inte en tredje fil game.h/game.cpp som du sköter interaktionen mellan klasserna i? Du måste ju i vilket fall som helst instansiera dina objekt någonstans ifrån. Ta hand om de som dör och skapa nya asteroider, rymdskepp...
Se upp när du använder dynamic_cast. Om du t.ex. lagrar dina instanser i en vektor/annan lagringsstruktur som tar typen DinAbstraktaKlass så kan du få problem när du gör dynamic_cast, eftersom det som läggs in i vektorn bara är den del av objektet som tillhör basklassen. Detta kommer man runt genom att i stället lagra pekare till DinAbstraktaKlass.
Om du inte har en debugger så släng in cout på strategiska ställen med någon vettig utskrift. På så sätt ser du hur långt programmet kommer innan det kollapsar.
268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849