Avatar billede damir Nybegynder
23. april 2000 - 14:18 Der er 4 kommentarer og
1 løsning

Paintbox, canvas ?

jeg er igang med at lave en pacman spil og nu jeg skal lave nogle gange hvor 'pacman' kan går rundt. Hvordan gøres det.
lidt kildekode ville være godt
Avatar billede sjensen Nybegynder
24. april 2000 - 08:42 #1
jeg formoder din pacman er et lille billede (f.eks. et bmp) og din paintbox har en størrelse der passer til dettte billede. Når du så definerer en form hvorpå pacman kan rende rundt, vil en måde at flytte ham på være at sætte paintboxens left eller top værdier:

Lav f.eks. et loop med

while not paintbox1.left = 0 do paintbox1.left := paintbox1.left - 1;

Dette vil få billedet til at bevæge sig i en lige linie ud mod venstre kant af formen.

Ved at lægge 1 til left vil den flytte sig til højre, og ved at hhv. lægge 1 til, eller trække 1 fra "top" vil den bevæge sig op og ned.

Hvis du samtidig udskifter billedet med et andet (eller flere efter hinanden) kan du få det til at se ud som om figuren samtidig ændrer sig (f.eks. åbner og lukker munden)

Jeg håber det har givet dig en ide om hvor enkelt det kan gøres.

Kontrollen over hvordan den skal flytte sig må jo være afhængig af hvad spilleren trykker på, så selve loopkontrol er nok det sværeste.

Men at flytte rundt på et billede gøres altså ved at ændre værdierne af left, og top og så checke at paintbox1.left + paintbox1.width ikke overstiger formens width (for at undgå at den ryger ud af formen) og tilsvarende checke at paintbox1.top+paintbox1.height ikke overstiger formens height for at undgå at den ryger ud af formen for neden.

Avatar billede cybermike Nybegynder
25. april 2000 - 10:02 #2
Ikketestet:
paintbox1.canvas.moveto(10,10);
paintbox1.canvas.lineto(100,100);

Eller noget i den stil.
Det er ivhertfald noget i den retning.
Avatar billede cybermike Nybegynder
18. oktober 2000 - 21:41 #3
damir>Ifølge ekspertens regler SKAL du give en forklaring på HVORFOR du afviser mit svar!
Avatar billede fepe Nybegynder
29. oktober 2000 - 20:04 #4
Jeg har selv lavet et Nibbles spil. Der brugte jeg et Image-felt og tegnede på dets canvas.
Du kan finde en artikel vedrørende det problem du har her: http://delphi.about.com/compute/delphi/library/weekly/aa101000a.htm?terms=untouchable

Hvert 50 millisekund nulstillede jeg hele image-feltets canvas og alle murene som Ormen ikke måtte gå ind i. Hvis kordinaterne på ormen var lig med en murs døde man.
Avatar billede fepe Nybegynder
29. oktober 2000 - 20:06 #5
Du kan tegne gangene sådan:

Form1.Canvas.FillRect(Rect(20,120,150,123));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester