Arrow Key Movement

Stu-pac

New Member
Reaction score
0
Hi, I am working on a new game called speedboats. My goal is for the players to be able to move their boats with arrow keys unlike the normal warcraft mouse click movement. I have figured out how to use arrow key triggers so that the hero does move and the camera stays with the hero.
> My problem is that the trigger only functions when the player presses the key, but not when the player holds the key down. This means that the player has to spam a key in order for their boat to move fast...
... I have tried something like every 0.3 seconds of game time "check if player has keyboard button pressed" but i cant find any kind of condition that looks like that.
If anyone knows how to do this in JASS or any method please post your reply.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Check out the new amazing AOS - War of the Ages > http://www.thehelper.net/forums/showthread.php?t=124815
 

uberfoop

~=Admiral Stukov=~
Reaction score
177
Set variables to serve as the condition. Whenever the key is pressed, set a variable to a value. When the key is released, negate it.

Booleans could work well for this. When the key is pressed, set to 'true.' When the key is released, set to 'false.'
 

Danis[h]

New Member
Reaction score
19
Set variables to serve as the condition. Whenever the key is pressed, set a variable to a value. When the key is released, negate it.

Booleans could work well for this. When the key is pressed, set to 'true.' When the key is released, set to 'false.'

Which means you need two OR three triggers, depending on how you make it..

1 trigger with the event, arrow key is pressed which then changes the value of the boolean

another trigger for when the key is released, and a third trigger with the timed event of issuing the move order :)

You can also have 1 trigger for both releasing and pressing the arrow key, and then use an if/then/else condition to change the value of the boolean, dependant on what the value currently is.
 

Stu-pac

New Member
Reaction score
0
Thank you for your suggestions, I made the variables and triggers and it worked fine but I came across a problem.
When I first made the periodic triggers I had it so the boat was moved instantly every time interval. Then after testing the map everything worked but it looked kind of choppy the way the boat would skip around. So then I decided to change the periodic movement so the boat was ordered to move to the point. Now when I tested it the choppiness was gone but the left and right arrow keys do not work when the up arrow key is pressed.
Ill try to post trigger code to show. If you can figure out the problem please let me know. >Sorry I just tried to edit 3 times and the spoiler tags didnt work...

Trigger:
  • set variables
    • Events
      • Player - Player 1 (Red) Presses the Up Arrow key
    • Conditions
    • Actions
      • Set Player1upkey = 1
Trigger:
  • release
    • Events
      • Player - Player 1 (Red) Releases the Up Arrow key
    • Conditions
    • Actions
      • Set Player1upkey = 0
Trigger:
  • periodic
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Player1upkey Equal to 0
        • Then - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Player1upkey Equal to 1
            • Then - Actions
              • Unit Group - Pick every unit in (Units in (Playable map area) matching ((((Matching unit) is A Hero) Equal to True) and ((Owner of (Matching unit)) Equal to Player 1 (Red)))) and do (Actions)
                • Loop - Actions
                  • Unit - Order (Picked unit) to Move To ((Position of (Picked unit)) offset by 50.00 towards (Facing of (Picked unit)) degrees)
                  • Camera - Pan camera for Player 1 (Red) to ((Position of (Picked unit)) offset by 400.00 towards (Facing of (Picked unit)) degrees) over 0.20 seconds
            • Else - Actions
Trigger:
  • set left
    • Events
      • Player - Player 1 (Red) Presses the Left Arrow key
    • Conditions
    • Actions
      • Set player1leftkey = 1
Trigger:
  • left release
    • Events
      • Player - Player 1 (Red) Releases the Left Arrow key
    • Conditions
    • Actions
      • Set player1leftkey = 0
Trigger:
  • periodic left
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • player1leftkey Equal to 0
        • Then - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • player1leftkey Equal to 1
            • Then - Actions
              • Unit Group - Pick every unit in (Units in (Playable map area) matching ((((Matching unit) is A Hero) Equal to True) and ((Owner of (Matching unit)) Equal to Player 1 (Red)))) and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) face ((Facing of (Picked unit)) + 5.00) over 0.00 seconds
                  • Camera - Pan camera for Player 1 (Red) to ((Position of (Picked unit)) offset by 400.00 towards (Facing of (Picked unit)) degrees) over 0.20 seconds
            • Else - Actions
Trigger:
  • set right
    • Events
      • Player - Player 1 (Red) Presses the Right Arrow key
    • Conditions
    • Actions
      • Set player1rightkey = 1
Trigger:
  • right release
    • Events
      • Player - Player 1 (Red) Releases the Right Arrow key
    • Conditions
    • Actions
      • Set player1rightkey = 0
Trigger:
  • periodic right
    • Events
      • Time - Every 0.10 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • player1rightkey Equal to 0
        • Then - Actions
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • player1rightkey Equal to 1
            • Then - Actions
              • Unit Group - Pick every unit in (Units in (Playable map area) matching ((((Matching unit) is A Hero) Equal to True) and ((Owner of (Matching unit)) Equal to Player 1 (Red)))) and do (Actions)
                • Loop - Actions
                  • Unit - Make (Picked unit) face ((Facing of (Picked unit)) - 5.00) over 0.00 seconds
                  • Camera - Pan camera for Player 1 (Red) to ((Position of (Picked unit)) offset by 400.00 towards (Facing of (Picked unit)) degrees) over 0.20 seconds
            • Else - Actions
Trigger:
 

uberfoop

~=Admiral Stukov=~
Reaction score
177
I would guess that since the unit is in self-motion, it automatically adjusts the facing back to its movement direction; when a unit is walking somewhere, movement dictates facing, not the other way around.
 

Stu-pac

New Member
Reaction score
0
so would there be no alternative to instantly moving the unit? because then I would have to make separate triggers for different boats, and item speed bonuses, power ups ect...
 

Danis[h]

New Member
Reaction score
19
Maybe what you need is a movement system with more conditions, and then issue order with a polar offset?

So if you press the up arrow key it will set up1 = true
then if you press right it will check if up1 is true.

if up1 = true, set forwardRight = true and then in the movement trigger you could order the unit to move to point with polar offset.

Something along those lines.. So it would be ordered to move to point of unit offset by 200 towards +20 degrees or whatnot.. and if only up1 is true, then order it with a +0 degrees
 

Stu-pac

New Member
Reaction score
0
I kind of understand what you are trying to say but can u explain a bit more exactly what I could do?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
    +1
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top