Löydättekö tästä koodsita virheitä? Minä en löydä, mutta se jää aina vaan valittamaan sitä "Et voi poistua pelialueelta!" vaikka painan mitä tahansa!
---
If PeliHemmo.Left = 0 And PeliHemmo.Top = 0 Then MsgBox "Et voi poistua pelialueelta!" ElseIf PeliHemmo.Left = 0 Then MsgBox "Et voi poistua pelialuuelta!" Else If PeliHemmo.Top = 0 Then MsgBox "Et voi poistua pelialueelta!" ElseIf PeliHemmo.Left = 5760 Then MsgBox "Et voi poistua pelialuuelta!" Else If PeliHemmo.Top = 4200 Then MsgBox "Et voi poistua pelialuuelta!" Else Select Case KeyCode Case vbKeyLeft If PeliHemmo.Left = 120 And PeliHemmo.Top = 2040 Then Unload Me Else PeliHemmo.Move PeliHemmo.Left - 60 End If Case vbKeyUp PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top - 60 Case vbKeyDown PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top + 60 Case vbKeyRight PeliHemmo.Move PeliHemmo.Left + 60 End Select End If End If End If
Joo käsittelet tuota samaa ehtoa moneen kertaan. Kokeiles:
Select Case KeyCode Case vbKeyLeft If PeliHemmo.Left = 120 And PeliHemmo.Top = 2040 Then Unload Me Else PeliHemmo.Move PeliHemmo.Left - 60 If PeliHemmo.Left < 0 Or PeliHemmo.Top < 0 Or PeliHemmo.Left > 5760 Or PeliHemmo.Top > 4200 Then MsgBox "Et voi poistua pelialueelta!" PeliHemmo.Move PeliHemmo.Left + 60 End If End If Case vbKeyUp PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top - 60 If PeliHemmo.Left < 0 Or PeliHemmo.Top < 0 Or PeliHemmo.Left > 5760 Or PeliHemmo.Top > 4200 Then MsgBox "Et voi poistua pelialueelta!" PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top + 60 End If Case vbKeyDown PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top + 60 If PeliHemmo.Left < 0 Or PeliHemmo.Top < 0 Or PeliHemmo.Left > 5760 Or PeliHemmo.Top > 4200 Then MsgBox "Et voi poistua pelialueelta!" PeliHemmo.Move PeliHemmo.Left, PeliHemmo.Top - 60 End If Case vbKeyRight PeliHemmo.Move PeliHemmo.Left + 60 If PeliHemmo.Left < 0 Or PeliHemmo.Top < 0 Or PeliHemmo.Left > 5760 Or PeliHemmo.Top > 4200 Then MsgBox "Et voi poistua pelialueelta!" PeliHemmo.Move PeliHemmo.Left - 60 End If End Select
ok, kokeillaan...
nyt toimii! Kiitos sulle!
Sinun kannattaisi kuitenkin tutkia pelialueen dynaamisia arvoja kiinteiden arvojen sijaan.
Eli jos hemmo liikkuu formilla:
If PeliHemmo.Left < Form.Left Or PeliHemmo.Top < Form.Top Or (PeliHemmo.Left+PeliHemmo.Width) > Form.ScaleWidth Or (PeliHemmo.Top+PeliHemmo.Height) > Form.ScaleHeight Then MsgBox "Et voi poistua pelialueelta!" ...jne...
Oheisella koodilla peliformia voi skaalata.
vois kai totakin joskus kokeilla
Aihe on jo aika vanha, joten et voi enää vastata siihen.