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 IfJoo 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 Selectok, 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.