Hoe doe ik dit?

Status
Niet open voor verdere reacties.

Timminator

Gebruiker
Lid geworden
10 dec 2012
Berichten
12
Hallo,

Ik zit met een probleempje :confused:.....

'K probeer een soort van spelletje te maken zoals space invador maar ik zit nog niet zo ver....

ik heb al een stukje code om mijn raketje van links naar rechts te verplaatsen.

Voor het raketje gebruik ik een picturebox met daarin een foto van een raket.

Het is de bedoeling dat als ik op de spatiebalk druk dat er een 'kogeltje' wordt afgevuurd vanaf de plaats waar het raketje staat...
Ik heb een vermoeden dat ik een timer moet optellen bij de y waarde van bv. een label waarin een foto van een kogel staat.

Weet iemand hoe je dat doet?

Dit is de code die ik al heb:

Code:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.Left Then
            picRaket.Location = New Point(picRaket.Location.X - 2, picRaket.Location.Y)
        End If
        If e.KeyCode = Keys.Right Then
            picRaket.Location = New Point(picRaket.Location.X + 2, picRaket.Location.Y)
        End If
        If e.KeyCode = Keys.Space Then
           [B] ??????????????????????????????????????????????[/B]
        End If
    End Sub
foto van het formulier:
Form1.png

Ik gebruik het programma Visual Basic 2010 Express

Bedankt.
 
Laatst bewerkt door een moderator:
Met alle respect, vanschagen, maar dat lijkt me toch niet echt een goede source. Als er WindowsMediaplayer-Componenten (4 stuks!) en 11 (!!) timers voor nodig zijn, moet je je toch echt af gaan vragen of je wel efficiënt bezig bent...

Verder kun je gewoon een timer-component gebruiken. Denk aan zoiets:

[CPP]private sub timer_tick() handles timer1.tick ''//Interval van 100ms ?
''//als de afbeelding nog niet buiten het beeld is:
''//verhoog de y-coördinaat met 1 (of meer)
''//controleer of er iets wordt geraakt, zo ja: laat de afbeelding verdwijnen
end sub[/CPP]

Het is waarschijnlijk een schoolopdracht?
 
Bedankt voor het snelle antwoord en de Link.

Maar zou het ook kunnen met maar 1 of 2 timers? Het is niet egt space invador zelf te proberen maken maar iets dat er op lijkt maar anders..

Het is niet voor een schoolopdracht ;)
grtz ;p
 
Bedankt voor het snelle antwoord en de Link.

Ik heb dit nu:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Left Then
picRaket.Location = New Point(picRaket.Location.X - 10, picRaket.Location.Y)
'picKogel.Location = New Point(picKogel.Location.X - 10, picKogel.Location.Y)
End If
If e.KeyCode = Keys.Right Then
picRaket.Location = New Point(picRaket.Location.X + 10, picRaket.Location.Y)
'picKogel.Location = New Point(picKogel.Location.X + 10, picKogel.Location.Y)
End If
If e.KeyCode = Keys.Space Then
picKogel.Visible = True
tmrKogel.Start()
picKogel.Location = New Point((picRaket.Location.X + 25), picRaket.Location.Y + 25)
End If
End Sub
Private Sub tmrKogel_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrKogel.Tick
picKogel.Top = picKogel.Top - 15

End Sub

Maar als ik op de spatiebalk druk begint de kogel die ik eerst heb afgevuurd terrug vanaf het schip ;(
Weet u toevallig hoe ik dan meerdere kogels achter elkaar kan afvuren?

bedankt.
 
Een goede (Nederlandse) tutorial over dit onderwerp:
Deel 1
Deel 2
Deel 3
[edit]
Voor het geval je je afvraagt hoe deze schepen bewegen:
Er is een timer ingebouwd in de klasse van het schip. ;)[/edit]
 
Laatst bewerkt:
Bedankt. Maar ik begrijp er niet egt iets van...
Weet u toevallig niet een stukje code puur om automatisch kogeltjes te kunnen afvuren?
 
Laatst bewerkt:
Maar wat begrijp je niet dan? Heb je het überhaupt (helemaal) gelezen?
Op welk deel loop je vast?
 
Ja maar ik begrijp helemaal niet waarom je een picturebox moet gebruiken.. Het kan tog ook in een formulier?
 
Wat is een formulier-component?

Het kan overigens ook met een panel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan