Ok, so I am working on a game (which is my first btw) and I am having trouble with the movement. This is the code I have so far:
if keyboard_check(ord("W"))
y -= 11
if keyboard_check(ord("S"))
y += 11
if keyboard_check(ord("A"))
x -= 11
if keyboard_check(ord("D"))
x += 11
if keyboard_check(vk_up)
y -= 11
if keyboard_check(vk_down)
y += 11
if keyboard_check(vk_left)
x -= 11
if keyboard_check(vk_right)
x += 11
image_angle = point_direction(x,y,mouse_x,mouse_y)
But I am having a few problems with it. The movement speed shouldn't add up when for example I press both ''W'' and ''Up'' at the same time. Also, what code do I have to use if I want to make some sort of speed vials? To temporary increase movement speed (say +3 relative movement speed for 150 steps). I suppose I would need to have a speed variable of some sort. Any help would be nice.
I'm not sure about the first problem with your movement, if you can explain it somewhat clearer I'll see if I can help.
For the "speed vial" thingy, what you want is basically some sort of power-up to give your char when he picks this up right?
For the speed vial: Create an object, obj_speedvial. Give it your powerup sprite etc etc.
Then:
CREATE-event for character:
movespeed=11 //the value for the normal movement code you have at the moment.
global.speedvial=0
STEP-event for character:
if global.speedvial=0
movespeed=11
if global.speedvial=1
movespeed=14 //I've added +3 reative speed to the standard movement speed. Experiment with this to your liking.
if keyboard_check(ord("W"))
y -= movespeed
if keyboard_check(ord("S"))
y += movespeed
if keyboard_check(ord("A"))
x -= movespeed
if keyboard_check(ord("D"))
x += movespeed
if keyboard_check(vk_up)
y -= movespeed
if keyboard_check(vk_down)
y += movespeed
if keyboard_check(vk_left)
x -= movespeed
if keyboard_check(vk_right)
x += movespeed
image_angle = point_direction(x,y,mouse_x,mouse_y)
COLLISION event for character colliding with obj_speedvial:
global.speedvial=1
alarm[0]=150 //put the number of steps for the powerup to last. I'll add 150 for the time being..
with other
instance_destroy() //destroys the speed vial again so you can only power up once per vial.
ALARM[0]-event for character:
global.speedvial=0 //The power-up has ran out of time and movement speed will be set back to normal.
That should do the trick.