...
| Denne delen tar utgangspunkt i en delvis ferdigskrevet Asteroids-klasse. Oppgaven til Asteroids-klassen er todel: 1) å rigge opp verdenen med rom-objekter og 2) kjøre selve simuleringen. I koden for Asteroids-klassen, som ligger nederst på denne siden, legges det opp til at dette gjøres i henholdsvis init()- og run()-metoden, men du står forsåvidt fritt til å (gjen)bruke denne koden som du vil. Men for at du skal lære mest mulig om arv, så prøv å legge mest mulig av din egen kode i subklasser av Asteroids, heller enn å skrive den om. Vi foreslår at du gjør oppgaven i følgende trinn, med én subklasse pr. trinn. Astroids-klassen har noen finesser, som kan nyttige ved feilsøking:
Bruk For hvert trinn bruker du AsteroidsProgram som hovedprogramklasse. main-metoden til AsteroidsProgram tar inn navnet til Asteroids-(sub)klassen som eneste programargument. Det enkleste er å lage en main-metode i din egen Asteroids-(sub)klasse (her kalt Asteroids1), slik:
Trinn 1 - Asteroids1I dette trinnet er målet å få lagt inn noen SpaceObject-instanser, se (til) at simuleringen beveger dem på skjermen og få kollisjonsdeteksjon til å fungere. SpaceObject-instansene opprettes i init()-metoden og legges inn med den ferdigskrevne add-metoden i Asteroids-klassen. For å få simuleringen til å virke, så må du fylle inn kode i tick()-metoden:
Se http://stackoverflow.com/questions/345838/ball-to-ball-collision-detection-and-handling dersom du vil simulere kollisjoner som (fullstendig) elastiske støt. Trinn 2 - Asteroids2I dette trinnet er målet å få gravitasjonslogikken til å fungere og sjekke det ved å legge inn en sol (stor, gul og rund Asteroid-instans) og masse asteroider (Asteroid-instanser av med ulik tetthet og størrelse). Utvid tick()-metoden slik at du for hvert SpaceObject-par beregner og håndterer den gjensidige gravitasjonskraften. Trinn 3 - Asteroids3I dette trinnet implementerer du støtte for å styre romskipet med piltastene (KeyCode.LEFT, KeyCode.RIGHT og KeyCode.UP). Finn selv ut hvilke Asteroids-metoder som må redefineres, for å få dette til. Sørg for å legge til et romskip og prøv å unngå å kollidere eller å bli slukt av sola! |
...