Avatar billede Slettet bruger
18. marts 2001 - 13:04 Der er 3 kommentarer og
1 løsning

Flyt en mand i et spil... :)

Jeg er i gang med at lave et spil. I dette spil skal man styre en mand rundt i en picturebox, og i denne picturebox er der nogen firkantede objekter, som det skal være umuligt for ham at gå ind i, altså de skal være som mure. Disse mure har forskellige koordinater fra spil til spil, så jeg skal have lavet en kode som forhindrer manden i at gå ind i væggene ligemeget med hvad koordinater de har. Jeg bruger denne kode, som bliver kørt 1000 gange i sekundet:

-----
i = 0
Do Until i = wall.Count
If Timer5.Enabled = False Then
    If Picture1.Left >= (wall(i).Left - 100) And (Picture1.Left + Picture1.Width) <= (wall(i).Left + wall(i).Width + 100) Then
        If Picture1.Top < (wall(i).Top + wall(i).Height) And (Picture1.Top + Picture1.Height) > wall(i).Top Then
            Picture1.Top = Label6.Caption
            Picture1.Left = Label7.Caption
            GoTo NoMove
        End If
    End If
End If
i = i + 1
Loop

Label6.Caption = Picture1.Top
Label7.Caption = Picture1.Left
------

NoMove er for at manden ikke skal flytte sig yderligere, og wall() er en array med væggene. Label6 er mandens tidligere x koordinat, og label7 er manden tidligere y koordinat.

Problemet med denne kode er at når manden prøver at gå ind i en væg, \'hopper\' han tilbage... Dette ser ret latterligt ud i længden.... Hvordan kan jeg forhindre dette?
Avatar billede skwat Praktikant
19. marts 2001 - 15:44 #1
lave checket inden du flytter manden
Avatar billede Slettet bruger
19. marts 2001 - 15:56 #2
hmm... meget fair, men hvordan gør man det lettest? hvis den skal checke hvor manden er efter at han er flyttet før han flytter, er man nød til at have fandens mange \'check-omgange\'... hvis du forstår hvad jeg mener...
Avatar billede skwat Praktikant
19. marts 2001 - 20:44 #3
det er ikke særlig krævende
du prober x,z værdierne ind i en variabel
e.g.
if x,y not wall :)

Avatar billede Slettet bruger
19. marts 2001 - 21:54 #4
hmm... desværre ikke lige noget jeg kan finde ud af...
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