Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

 Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo.

Lignende præsentationer


Præsentationer af emnet: " Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo."— Præsentationens transcript:

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


Download ppt " Jens Bennedsen 2001Multimedie programmering13.1 Lingo Objectorienteret Lingo."

Lignende præsentationer


Annoncer fra Google