I Need ASAP: Keyboard input

if i want to make a picture box move left, right, up or down what code do i use?
[80 byte] By [TheGreatOtakuKraken] at [2007-12-28]
# 1

A simple example based upon keypresses on a form. Simple form with one button and picture box on. You are detecting the key that is pressed and moving the picturebox by adjusting the left and top properties.

Public Class Form1

Private Sub MoveButtonAround(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp, Button1.KeyUp
If e.KeyCode = Keys.Down Then
PictureBox1.Top = PictureBox1.Top + 1
ElseIf e.KeyCode = Keys.Up Then
PictureBox1.Top = PictureBox1.Top - 1
ElseIf e.KeyCode = Keys.Left Then
PictureBox1.Left = PictureBox1.Left - 1
ElseIf e.KeyCode = Keys.Right Then
PictureBox1.Left = PictureBox1.Left + 1
End If
End Sub

End Class

spotty at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 2
Oh thank god for your existince spotty!!!
THANK YOU SO MUCH!!!
TheGreatOtakuKraken at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 3

Here's how to make the picturebox follow the mouse pointer on a form:

Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

Me.PictureBox1.Left = Control.MousePosition.X

Me.PictureBox1.Top = Control.MousePosition.Y

End Sub

That can be adapted to work with the keyboard's Up & Down and Left & Right keys fairly easy.

james

aka:Trucker

Trucker at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 4

Cool code Spotty! Here's a minor change that makes it work faster and moves the picturebox as long as the Up, Down, Left, Right arrow keys are held down:

Private Sub MoveButtonAround(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

If e.KeyCode = Keys.Down Then

PictureBox1.Top = PictureBox1.Top + 10

ElseIf e.KeyCode = Keys.Up Then

PictureBox1.Top = PictureBox1.Top - 10

ElseIf e.KeyCode = Keys.Left Then

PictureBox1.Left = PictureBox1.Left - 10

ElseIf e.KeyCode = Keys.Right Then

PictureBox1.Left = PictureBox1.Left + 10

End If

End Sub

Of course you know we just did somebody's homework for them!!! :-)

james

aka:Trucker

Trucker at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 5
thank you both very much so!!!

:)

==EDIT==

The "move faster" thing dosent work, what i mean is it dosent move when i hold the keys down.

TheGreatOtakuKraken at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 6
I have another problem, how do i make it so that a picture box cant go on top of a certain picture box?
TheGreatOtakuKraken at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 7

It wont because the keyup event because you have not fired a keyup event.

spotty at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 8

Yep - I had that code originally and though I'll just set them back to 1 otherwise they might wander why I chose 10 arbitarily.

Now we gave them going we with the demonstration of the top and left property and keyup events. Its a case of refering them to relevent functions for them to check out and try things by themselves.

BringToFront property and SendToBack properties
http://msdn2.microsoft.com/en-us/system.windows.forms.control.bringtofront.aspx

spotty at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 9
well, that solves the case of the holding keys. this calls for a beer.

but now i need to know how to get one picture box to now be able to go on another.
kind of like collision detection

TheGreatOtakuKraken at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 10

It works in the KeyDown event too. I tested it before posting and again just now. As for keeping the picture box from hitting another picturebox, you are getting into collision detection. More math. Do a search on MSDN or Google for Collision detection, Visual Basic etc and you should find what you need.

james

aka:Trucker

Trucker at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 11

Don't drink too many of those beers!! Keeping the Picturebox that is movable from hitting another Picturebox, requires you to keep track of the location of the moving picturebox. In this case, you need to know what the , Left, Top, Right, Bottom locations of the 2nd box and make sure that no portion of the movable box gets near those locations. Time to do some real coding!! Have fun.

james

aka:Trucker

Trucker at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 12
aww ***...better get some red bull and some mars bars...because here i go!

starting in 3...
2...
1...

GO!

TheGreatOtakuKraken at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 13
Could U give me the code from beginning to end on how to make a picture

box move with the arrow keys in visual basic or maybe even the code

from beginning to end on a basic lunar lander game i am new to this i

got it somewhat working but i need some code to look at for reference

crash5232 at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...
# 14

Some things you are going to have to learn for yourself, just like the original poster in this thread. The code you need to move a picturebox with the arrow keys is already here. Put a picturebox on a form, load a picture to it, and then in the event cited in the above posts, use that code, and it will move the picturebox around when holding down the arrow keys. That should get you started. Try working on it and when you have specific questions, post them in a NEW THREAD here and we will try to help you. It's best to learn by doing.

james

aka:Trucker

Trucker at 2007-9-4 > top of Msdn Tech,Visual Basic,Visual Basic Language...