Gamemaker, dagens föreläsning Vad innehåller Gamemaker? Rum Objekt Händelser Aktioner Sprites Ljud Variabler och uttryck Live exempel: Början på Pac Man Att göra spel med Game Maker Programmeringsmodell Objektorienterad Händelsestyrd Prototypbaserad instansiering Framförallt finns det en enkel och lättlärd väg Men, tillåter en svårare och mer finessrik väg Grundläggande delar Rum Nivåer i spelet Statisk storlek Innehåller bakgrundsbild, tiles och objekt Objekt Har en vy (= en sprite) Kan reagera på händelser Har många egenskaper Rum Ett Rum är hela eller en del av spelvärlden Kan vara allt från en helt svart yta till ett landskap med hus, träd, djur och människor Saker som är statiska dvs. saker som inte interagerar med andra, kan skapas som tiles I Rum skapas, lever och dör alla objekt
Objektorientering Gamemaker är objektorienterat för att den har: Arv Meddelandesändning Instansiering OBS! Objektorientering är inget krav för att göra labbar och projekt. Objekt Objekt: Är en tingest (substantiv). Innehar information för tingesten (tillstånd). Reagerar på händelser (meddelandesändning). Kan: Skapas (konstruktion) Leva en tid Förstöras (destrueras) Objekt Objektdialogen Objekt är allt som kan flyttas, förvandlas, har ett beteende eller på något sätt interagerar med andra saker i spelet Objekt behöver inte synas på skärmen, de kan vara informationsbehållare Varje skapat objekt får ett objekt ID Man kan referera till objekt via ID eller objekt namn Objekt reagerar på händelser, från systemet eller användaren
Objekt reagerar på händelser Händelser är enda sättet för ett objekt att ändra sitt tillstånd Händelser kan komma från: Systemet (alarm, konstruktion och destruktion) Användaren (mus, tangentbord och joystick) Andra objekt (kollisioner, mm) Ett objekts beteende är bestämt utifrån den tillståndsförändring som blir när en händelse uppstår Somliga händelser innefattar fler objekt Undvik att lägga för mycket i händelsen Step Händelser Aktioner när händelser inträffar Aktioner När en händelse inträffar har objektet en chans att ändra sina egenskaper Reaktioner kan ge upphov till nya händelser: I objektet som fick händelsen från början I andra objekt Exempel på reaktioner: Ändra position, spela up ett ljud, byta utseende mm.
Starta förflyttning Flytta ett objekt med en viss hastighet och riktning Kan påverka andra objekt än sig själv Objektet stannar inte för att den har kommit utanför skärmen Sprites Används för att visa objekt Pixel baserad Bitmap Genomskinlighet (Alfa kanal) Sprites ska inte vara så stora T.ex. 16, 32 eller 64 pixlar Varför är sprites många till antalet? Svaret finns på nästa bild! Animerade sprites Lägg till en Sprite Animeringar Animeringen (spriten) till höger består av nio bitmaps Om den skall kunna gå åt alla riktningar (up, ner, höger och vänster) så krävs totalt 36 bitmaps och fyra sprites
Lägg till ett Ljud Verktygsfält Ljud finns till för ökad upplevelse Effekter Bakgrundsmusik Ljud är passivt Undvik för mycket ljud KTH utvecklar spel baserat på enbart ljud för synskadade Kör och felsöka spel Standardfält med: Ny, öppna och spara Resursfält: Lägg till sprite, ljud, bakgrund, objekt eller rum Information och inställningar Registrera och hjälp Variabler och uttryck För att kunna bibehålla information för objektets tillstånd används variabler Alla objekt har en standard uppsättning av variabler men kan utökas med fler Variabler tillhör antingen alla objekt (globala) eller ett specifikt objekt (lokala) Variabler kan innehåll värden: Heltal, flyttal och text Variabler och uttryck, forts. I en reaktion kan man tilldela variabler, nya värden En variabel måste ha ett värde innan man frågar den om värdet Utan uttryck kan man bara tilldela variabler, konstanta värden Uttryck är ett strukturerat sätt at kombinera del-uttryck
Variabler och uttryck, forts. Uttryck är antingen: En konstant En variabel (namn på variabel) En funktion (namn på funktion + ev. parametrar) En kombination med hjälp av en operator mellan två andra del-uttryck Exempel: vspeed screen_height / (10 + 1 foo) Uttryck Aritmetiska uttryck kombineras med aritmetiska operatorer (+,-,* och /) Logiska uttryck kombineras med logiska operatorer (==,<,>,>= och <=) Alla operatorer har en inbördes prioritet, samma prioritet som gäller för matematiska operatorer Funktioner Funktioner är en sekvens av aktioner som slagits samman och givits ett namn Man kan göra egna funktioner (GML) men Gamemaker har en uppsättning redan gjorda funktioner Funktioner kan ta parametrar som i sig själva kan vara uttryck Funktioner lämnar ofta tillbaka ett resultat Summering Spel i Game Maker består av ett antal rum I rum finns objekt som reagerar på händelser Sprites är ett antal bitmaps Ljud höjer spelupplevelsen Man kan programmera i Game Maker (liknar C-programmering)