Olen saanut jo monta neuvoa tähän asiaan mutta en saa silti
sitä toimimaan...
Käytän visual basic kolmosta.
Miten saan tehtyä peliin palikan jonka miltään sivulta ei pääse läpi?
Tähän mennessä minulla on ollut ongelmana että palikan vierestäkään ei voi mennä.
Tässä on toimiva koodi. Laita formille kaksi PictureBoxia, joiden nimet ovat pEste ja pPelaaja. Formin KeyPreview-ominaisuuden täytyy olla True, jotta näppäinohjaus toimii kunnolla, ja formin sekä molempien PictureBoxien ScaleModen täytyy olla 3 eli Pixel.
Dim x As Integer, y As Integer Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim ux As Integer, uy As Integer ux = x uy = y Select Case KeyCode Case vbKeyLeft ux = ux - 1 Case vbKeyUp uy = uy - 1 Case vbKeyRight ux = ux + 1 Case vbKeyDown uy = uy + 1 End Select If ux + pPelaaja.Width > pEste.Left And ux < pEste.Left + pEste.Width Then If uy + pPelaaja.Height > pEste.Top And uy < pEste.Top + pEste.Height Then Exit Sub End If End If x = ux y = uy pPelaaja.Move x, y End Sub Private Sub Form_Load() x = 0 y = 0 pPelaaja.Move x, y End Sub
Mitä nuo kummalliset If-lauseet sitten tekevät? Ensimmäinen tarkistaa, onko pPelaaja pEsteen sisällä vaakasuunnassa ja jälkimmäinen tarkistaa, onko pPelaaja pEsteen sisällä pystysuunnassa. Jos kummatkin ehdot ovat tosia, liikkuminen ei ole mahdollista, minkä vuoksi poistutaan aliohjelmasta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.