NightMaree Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 (endret) såg den der snake tråden, så tenkte eg at eg sko prøva å laga en labrint så en liden figur ska gå igjønå... labyrintent består av lange "bjelkar", den første bjelken ligger på 'top 3120'. og vist denne mannen treffer di bjekane så blir han 'game over' Då er spørsmåle. må eg skriva inn alle corodinatene, eller kan eg skriva f.ek. If Shape1.Top = 3120 or shape1.left = 600 > 4680 then msgbox "game over" end if Endret 22. desember 2004 av NightMaree Lenke til kommentar
Jonas Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 Hva er det du mener? I koden din har du jo skrevet inn et par kordinater Lenke til kommentar
NightMaree Skrevet 22. desember 2004 Forfatter Del Skrevet 22. desember 2004 ja, mn må eg skriva alle kordinatene, eller kan eg skriva f.ek shape1.left = 0 > 100 går de?? eg får de jalfall ikke til Lenke til kommentar
Jonas Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 Jeg skjønner ikke helt hva du mener. "shape1.left = 0 > 100" er ikke en "gylddig" kode, men "shape1.left = 0" er. Lenke til kommentar
GenericName Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 (endret) ... Endret 11. januar 2011 av Token Lenke til kommentar
Zethyr Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 If Shape1.Top = 3120 or shape1.left < 600 or shape1.left > 4680 then msgbox "game over" end if kanskje dette funker?? aldri drevet med vb eller qb selv, så jeg kan ikke si meg sikker. Lenke til kommentar
NightMaree Skrevet 22. desember 2004 Forfatter Del Skrevet 22. desember 2004 Jeg skjønner ikke helt hva du mener. "shape1.left = 0 > 100" er ikke en "gylddig" kode, men "shape1.left = 0" er. ja, eg vet de. Men for å sleppa å skriva alle kordinatene, går de an å skriva shape1.left = fra og til then ....... i steden for shape1.left = 600 then ...... shape1.left = 580 then ...... shape1.left = 560 then ...... aslå at eg sleppe å skriva så mangen gonger.... fatte nå? Lenke til kommentar
aadnk Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 Hvis du ønsker å påvise om objektene dine er i kontakt med andre, kan du prøve ut denne funksjonen: Public Function IsCollided(refObject As Shape) As Boolean Dim Shape As Shape For Each Shape In refObject.Parent.Controls If (Not refObject Is Shape) And Shape.Left + Shape.Width > refObject.Left And Shape.Left < refObject.Left + refObject.Width And Shape.Top + Shape.Height > refObject.Top And Shape.Top < refObject.Top + refObject.Height Then IsCollided = True Exit For End If Next End Function Den søker igjennom alle shapes og sjekker om referanseobjektet overlapper en av objektene. Gjør den det, vil funksjonen returnere True. Funksjonen kan f.eks brukes som følgende: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim X As Long, Y As Long X = shpPlayer.Left Y = shpPlayer.Top Select Case KeyCode Case vbKeyLeft: shpPlayer.Left = shpPlayer.Left - 1 Case vbKeyRight: shpPlayer.Left = shpPlayer.Left + 1 Case vbKeyUp: shpPlayer.Top = shpPlayer.Top - 1 Case vbKeyDown: shpPlayer.Top = shpPlayer.Top + 1 End Select If IsCollided(shpPlayer) Then shpPlayer.Left = X shpPlayer.Top = Y End If End Sub Lenke til kommentar
Jonas Skrevet 22. desember 2004 Del Skrevet 22. desember 2004 (endret) aslå at eg sleppe å skriva så mangen gonger.... fatte nå? Ja, jeg fatter. Klart det går ann If shape1.Left => Me.scalewidth Or shape1.Left =< 0 - Shape1.Width or shape1.Top =< 0 - Shape1.Height or shape1.Top => Me.scaleheight Then Msgbox "Game Over" end if Endret 22. desember 2004 av Jonas Lenke til kommentar
GeirGrusom Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 Nå er vel jeg ganske stygg når jeg sier det men; Du kan ikke sitte å skrive inn alle veggene med masse If setninger, legg koordinatene i en tekstfil, eller binærfil, så blir det mye raskere, mindre og enklere (alt på en gang!) Og jeg tenker du vil ha If (Shape1.Top > rect.Top And (Shape1.Top + Shape1.Height) < rect.Bottom) And (Shape1.Left > rect.Left And (Shape1.Left + Shape1.Width) < rect.Right) Then MsgBox "Game Over!" End If Lenke til kommentar
NightMaree Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 (endret) nå begynne eg å fatta 0 her... at vist shape1 treffer veggen så avsluttan spele, de va ikke problem, de har eg klart. men vist han treffer di "veggane" eg har lagt ut, så ska han åg avslutta, de får eg ikke til.. la med filå.. Form1.frm Endret 23. desember 2004 av NightMaree Lenke til kommentar
Jonas Skrevet 23. desember 2004 Del Skrevet 23. desember 2004 Se vedlegg. Funksjonen Collide() sjekker om to ting treffer hverandre. Merk at jeg ga alle veggene en index-verdi. Da blir det lettere å gå gjennom alle sammen. Ellers måte man ha skrevet 6 forskjellige koder Form1.frm Lenke til kommentar
NightMaree Skrevet 23. desember 2004 Forfatter Del Skrevet 23. desember 2004 takk Jonas Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå