Gå til innhold

Anbefalte innlegg

Hallo

 

Driver et spill her hvor stjerner skal pasere forbi. Alt funker helt til jeg unloader en stjerne og så skal flytte på dem.

 

Når jeg unloader en stjerne så blir ikke stjerne med høyere index flytta et hakk ned, så når jeg skal flytte på alle gir det error. Denne koden bruker jeg for å sjekke om en stjerne er utenfor bilde, og da unload den:

Dim sjekk
For sjekk = 1 To stjerne.UBound

   If stjerne(sjekk).Left <= -30 Or stjerne(sjekk).Left >= 4845 Or stjerne(sjekk).Top >= 4605 Then
   Unload stjerne(sjekk)
   
       Dim f
       For f = sjekk + 1 To stjerne.UBound
       stjerne(f).Index = stjerne(f).Index - 1
       Next f
   
   End If
   
Next sjekk

 

Edit: leif

Endret av Jonas
Lenke til kommentar
Videoannonse
Annonse

hva skjer dersom du bytter om på rekkefølgen slik som nedenfor

 

Dim sjekk
For sjekk = 1 To stjerne.UBound

  If stjerne(sjekk).Left <= -30 Or stjerne(sjekk).Left >= 4845 Or stjerne(sjekk).Top >= 4605 Then
  
      Dim f
      For f = sjekk + 1 To stjerne.UBound
      stjerne(f).Index = stjerne(f).Index - 1
      Next f
  
      Unload stjerne(stjerne.UBound)

  End If
  
Next sjekk

Lenke til kommentar

Årsaken til feilen er slik du sa, Index propertyen er kun Read-only. Derfor må du bruke en slik kode:

 

Public Sub CreateStar(Left As Integer, Top As Integer)

Dim Tell&

For Tell = stjerne.LBound To stjerne.Ubound
   
   If stjerne(Tell).Visible = False Then
       Exit For
   End If
   
Next

If Tell > stjerne.Ubound Then
   Load stjerne(stjerne.Ubound + 1)
   Tell = stjerne.Ubound
End If

stjerne(Tell).Left = Left
stjerne(Tell).Top = Top
stjerne(Tell).Visible = True

End Sub

Public Sub RemoveStars()

Dim Tell&

For Tell = 1 To stjerne.Ubound

  If stjerne(Tell).Left <= -30 Or stjerne(Tell).Left >= 4845 Or stjerne(Tell).Top >= 4605 Then
       stjerne(Tell).Visible = False
  End If
 
Next

End Sub

 

For å slette objekter i stjerne arrayen må du skrive denne koden:

 

RemoveObjects

 

For å legge til en stjerne må du bruke denne koden:

 

CreateStar 10 + (Rnd * 4795), -10

 

Edit: Feil framgangsmåte

Endret av aadnk
Lenke til kommentar

Kanskje du burde vurdere å ikke lage stjerne som objekter (jeg antar de er PictureBoxer?) men heller lagre dem som variabler i array eller linked list og heller tegne dem for hvert frame. litt tyngre, men mye stiligere ;)

 

Hvis du gidder kan du jo sende meg kildekoden på [email protected] så kan jeg kikke på det?

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...