Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afJette Aagaard Redigeret for ca. et år siden
1
Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo
2
Jens Bennedsen 2001Multimedie programmering13.2 Til mange associering Tidligere så vi på følgende model: Den realiserede vi på følgende måde: public class Customer { public Customer(String name) { this.name=name; accounts = new java.util.HashSet(); } public List getAccounts() {return accounts;} public void addAccount(Account a) { accounts.add(a); }... private Set accounts; }
3
Jens Bennedsen 2001Multimedie programmering13.3 Lister i Lingo I Lingo er der også en liste type [ ] Som vanligt er den utypet Der er - som vi kender det fra Collection - en række operationer på lister: –Tilføjelse: l.add(val), l.addAt(pos,val), l.append(val) –Slette: l.deleteAll(), l.deleteAt(pos), l.deleteOne(value) –Tilgå: l[index], l[index1..index2], l.getPos(value),l.getLast() –Diverse: l.count(), l.max(), l.min Husk at en Lingo liste starter i position 1 i modsætning til java’s Collection
4
Jens Bennedsen 2001Multimedie programmering13.4 LingoBank Modellen kan derfor realisers som følger i Lingo:
5
Jens Bennedsen 2001Multimedie programmering13.5 LingoBank Konto Kunde Modellen kan derfor realisers som følger i Lingo: property balance property customer on new me, Pcustomer customer = Pcustomer balance = 0 return me end on withdraw me, Pamount balance = balance - Pamount end on deposit me, Pamount balance = balance + Pamount end on getBalance me return balance end property name property accounts on new me, Pname name = Pname accounts =[] return me end... on addAccount me, Paccount accounts.add(Paccount) end on getAccounts me return accounts end
6
Jens Bennedsen 2001Multimedie programmering13.6 Specialisering Det er muligt i Lingo at lave en art superklasse - en klasse kan have en ancestor Det er en property, der kan sættes til at pege på et objekt af superklassen Det er derfor ikke arv som i Java men nærmere komposition: Subklassen ancestor superklassen
7
Jens Bennedsen 2001Multimedie programmering13.7 Eksempel Det koster chequePrice ekstra hver gang der hæves property chequePrice property ancestor on new me, Pcustomer, PchequePrice ancestor = script("Account").new(Pcustomer) chequePrice = PchequePrice return me end on withdraw me, amount ancestor.balance = ancestor.balance - amount - chequePrice end
8
Jens Bennedsen 2001Multimedie programmering13.8 Opgave Hvordan vil en ”lånekonto” se ud –Det koster to procent af beløbet der hæves, dog mindst X kr, hvis saldoen er negativ, ellers ikke noget
9
Jens Bennedsen 2001Multimedie programmering13.9 Et større eksempel
10
Jens Bennedsen 2001Multimedie programmering13.10 Model Hvad er der af begreber? –Pacman –Spøgelse –Vej –Mur –Spilleplade –Spisbar ting Hvordan ser modellen ud for pacman?
11
Jens Bennedsen 2001Multimedie programmering13.11 Pacman model
12
Jens Bennedsen 2001Multimedie programmering13.12 Funktionalitet Hvad skal der ske? –Spillet skal initialiseres Brættet skal tegnes Der skal placeres ghosts og pacman Der skal placeres points –For hver stepframe skal pacman og ghosts flyttes, og der skal chedckes om der sker noget ved disse flytninger Hvis pacman og et ghost er på samme felt, dør pacman Hvis pacman er på et felt med et point, skal det spises
13
Jens Bennedsen 2001Multimedie programmering13.13 Initialisering Lav en klasse der styrer spillet - GameController –Initialisering –Når to props møde hinanden –Initialisering Skab pacman Skab spillepladen Skab grafikken Skab ghosts –Når to props møde hinanden Check om prop1 kan spise prop2 Check om prop2 kan spise prop1 –Et moviescript (on startMovie) skaber et GameController objekt
14
Jens Bennedsen 2001Multimedie programmering13.14 Flytninger Hvad skal der ske? –I hver stepframe skal creatures flytte sig og se hvad der sker ved det. –Hvordan beskriver vi det? –Objekt interaktion!
15
Jens Bennedsen 2001Multimedie programmering13.15 Flyt - Pacman (1)
16
Jens Bennedsen 2001Multimedie programmering13.16 addProp - Hallway
17
Jens Bennedsen 2001Multimedie programmering13.17 Hvad med grænsefladen? Der sker en opdetaring i modellen, den skal afspejles i grænsefladen? MVC! PacmanObserver, GhostObserver, PropObserver
18
Jens Bennedsen 2001Multimedie programmering13.18 CreatureObserver global xFactor global yFactor property spriteObject on new me, spriteNo, h, w spriteObject=sprite(spriteNo)... return me end on update me, pObservable spriteObject.locH= xFactor*(pObservable.placementBlock.x-1) + xFactor*0.5 spriteObject.locV= yFactor*(pObservable.placementBlock.y-1) + yFactor*0.5 if pObservable.dead then --slet end if end
19
Jens Bennedsen 2001Multimedie programmering13.19 Opsamling Lingo begreb: Parent scripts Child objects. Property variables Handlers Ancestor scripts OO begreb: Klasser Instanser/objekter Attributtter Metoder Super klasse
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.