Tillbaka till Omgivningssimulator
Sida 20
4.2.3 Objekt i Simulerade världen, Basklasser:
Ett spel innehåller en lista med objekt.
Objekt kan skapas, raderas och modifieras. Ett objekts egenskaper kan ändras genom direkt modifiering eller genom tidsbaserade händelser. Direkt modifiering av ett objekts egenskaper medför att dess händelselista raderas. Ett objekt bör ha defaultvärden för sina egenskaper. På så sätt kan objekt enkelt skapas med ett kommando som är gemensamt för alla objektklasser. Varje objekt innehåller två identifikatorer; ett som bestämmer klasstillhörighet och ett spelunikt ID-nummer som tilldelas av spelet då objektet skapas. Kopiering av objekt planerat att införas.
- Mobila objekt
Innehåller medlemsvariabler motsvarande innehållet i Meddelandetypen Objectdata + åtkomst- och modifierings- funktioner, en uppdateringsfunktion, en lista av händelser.
- Stationära objekt
Innehåller medlemsvariabler motsvarande innehållet i Meddelandetypen Objectdata + åtkomst- och modifierings- funktioner, en uppdateringsfunktion, en lista av händelser. Hastighet och kurs = 0.
- Omgivningsobjekt
Kan inte raderas. Representerar omgivningen för ett Eget system. Innehåller medlemsvariabler motsvarande innehållet i Meddelandetypen Environmentdata + åtkomst-, modifierings- funktioner, en uppdateringsfunktion, en lista av händelser.
4.2.4 Händelsehantering
En händelse sker vid en viss tidpunkt relativt spelstart. Det finns två typer av händelser:
1.Ena varianten är knuten till ett visst objekt eller en grupp av objekt. Exempel på denna typ av
händelser är kurs- och fartändringar, slå av eller på vissa egenskaper eller sändare, m.m. Denna typ
av händelser hanteras på objektsnivå med hjälp av en händelselista i varje objekt.
2.Andra varianten är "globala" händelser, som t.ex insättning och borttagning av objekt vid en viss tidpunkt, order som ska till EXS vid en viss tidpunkt, m.m. Denna typ av händelser hanteras på spelnivå med hjälp av en global händelselista.
Modifikation, skapande och borttagning av objektshändelser och listor av objektshändelser är för tillfället knutet till det/de objekt som händelserna tillhör. Det har framförts önskemål om möjlighet att kunna kopiera en lista av händelser mellan objekt. Det finns också planer på att införa positionsbaserade händelser.
4.2.5 Tidshantering
All simulering sker relativt realtid. Uppdatering av objekt i omvärlden, uppdatering av skärm samt kontrollsändningar och tidssynkronisering sker med olika intervall givna av användaren, vid spelstart eller interaktivt. All tidshantering bygger på en speltid (currTime) som är reell tid multiplicerad med en faktor given av användaren vid spelstart eller då spelet är fruset. Om denna faktor är större än ett rekommenderas att sändningar till EXS och skärmuppdateringar upphör. Detta för att kunna uppnå samma noggrannhet i uppdateringarna som vid normal speltid.
4.2.6 ENS-SIM's gränssnitt mot ENS-NET och ENS-MMI
Bibliotek av funktioner för modifikation av den simulerade omvärlden och för spelhantering
Accessorer:
- int mode()
Returnerar spelets nuvarande tillstånd.
- void mode (int m)
Sätter spelets tillstånd till m
- int origolat()
Returnerar koordinatsystemets origos Latitud
- void origolat(int)
Sätter koordinatsystemets origos Latitud
- int origolong()
Returnerar koordinatsystemets origos Longitud
Sida 22