Creating an Onscreen Joystick

7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€67.18
List Price:  €95.97
You save:  €28.79
£55.86
List Price:  £79.80
You save:  £23.94
CA$97.87
List Price:  CA$139.82
You save:  CA$41.95
A$107.62
List Price:  A$153.75
You save:  A$46.13
S$94.24
List Price:  S$134.64
You save:  S$40.39
HK$544.83
List Price:  HK$778.36
You save:  HK$233.53
CHF 62.54
List Price:  CHF 89.34
You save:  CHF 26.80
NOK kr774.97
List Price:  NOK kr1,107.14
You save:  NOK kr332.17
DKK kr501
List Price:  DKK kr715.75
You save:  DKK kr214.74
NZ$119.95
List Price:  NZ$171.37
You save:  NZ$51.41
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.19
৳8,361.58
List Price:  ৳11,945.63
You save:  ৳3,584.04
₹5,909.84
List Price:  ₹8,442.99
You save:  ₹2,533.15
RM312.71
List Price:  RM446.75
You save:  RM134.04
₦118,484.88
List Price:  ₦169,271.38
You save:  ₦50,786.49
₨19,443.22
List Price:  ₨27,777.22
You save:  ₨8,334
฿2,412.28
List Price:  ฿3,446.26
You save:  ฿1,033.98
₺2,418.32
List Price:  ₺3,454.90
You save:  ₺1,036.57
B$406.01
List Price:  B$580.04
You save:  B$174.03
R1,267.89
List Price:  R1,811.35
You save:  R543.45
Лв131.37
List Price:  Лв187.69
You save:  Лв56.31
₩98,301.65
List Price:  ₩140,436.95
You save:  ₩42,135.30
₪259.10
List Price:  ₪370.16
You save:  ₪111.06
₱4,125.14
List Price:  ₱5,893.31
You save:  ₱1,768.17
¥10,832.35
List Price:  ¥15,475.45
You save:  ¥4,643.10
MX$1,429.79
List Price:  MX$2,042.64
You save:  MX$612.85
QR255.18
List Price:  QR364.56
You save:  QR109.38
P956.90
List Price:  P1,367.06
You save:  P410.16
KSh9,061.51
List Price:  KSh12,945.58
You save:  KSh3,884.06
E£3,475.01
List Price:  E£4,964.52
You save:  E£1,489.50
ብር8,566
List Price:  ብር12,237.67
You save:  ብር3,671.66
Kz63,900.87
List Price:  Kz91,290.87
You save:  Kz27,390
CLP$69,057.73
List Price:  CLP$98,658.13
You save:  CLP$29,600.40
CN¥506.93
List Price:  CN¥724.22
You save:  CN¥217.29
RD$4,217.06
List Price:  RD$6,024.63
You save:  RD$1,807.57
DA9,397.90
List Price:  DA13,426.15
You save:  DA4,028.25
FJ$159.29
List Price:  FJ$227.57
You save:  FJ$68.27
Q540.13
List Price:  Q771.64
You save:  Q231.51
GY$14,638.82
List Price:  GY$20,913.50
You save:  GY$6,274.67
ISK kr9,776.20
List Price:  ISK kr13,966.60
You save:  ISK kr4,190.40
DH703.91
List Price:  DH1,005.63
You save:  DH301.72
L1,275.33
List Price:  L1,821.98
You save:  L546.64
ден4,132.76
List Price:  ден5,904.20
You save:  ден1,771.43
MOP$561.01
List Price:  MOP$801.48
You save:  MOP$240.46
N$1,268.91
List Price:  N$1,812.81
You save:  N$543.90
C$2,574.70
List Price:  C$3,678.31
You save:  C$1,103.60
रु9,449.77
List Price:  रु13,500.25
You save:  रु4,050.48
S/265.32
List Price:  S/379.05
You save:  S/113.72
K281.71
List Price:  K402.47
You save:  K120.75
SAR262.77
List Price:  SAR375.40
You save:  SAR112.63
ZK1,934.92
List Price:  ZK2,764.29
You save:  ZK829.37
L334.42
List Price:  L477.77
You save:  L143.34
Kč1,702.59
List Price:  Kč2,432.37
You save:  Kč729.78
Ft27,646.05
List Price:  Ft39,496.05
You save:  Ft11,850
SEK kr772.42
List Price:  SEK kr1,103.50
You save:  SEK kr331.08
ARS$70,259.44
List Price:  ARS$100,374.93
You save:  ARS$30,115.49
Bs483.50
List Price:  Bs690.75
You save:  Bs207.24
COP$307,238.59
List Price:  COP$438,931.09
You save:  COP$131,692.49
₡35,641.51
List Price:  ₡50,918.63
You save:  ₡15,277.11
L1,768.23
List Price:  L2,526.16
You save:  L757.92
₲546,248.87
List Price:  ₲780,388.98
You save:  ₲234,140.10
$U2,983.14
List Price:  $U4,261.82
You save:  $U1,278.67
zł291.40
List Price:  zł416.31
You save:  zł124.90
Already have an account? Log In

Transcript

Controlling our central character have chosen to use a non screen joystick. Dragging the desktop character walk forwards, dragging it down. Ultimately she's going to walk backwards. Dragging to the left, she'll turn left, dragging to the right. She'll turn right. And the joysticks song, we'll call the little dots in the middle of the song.

And we'll return to the center whenever we release the mouse or the touch. So how do we use that? sticking with the folder v1 game dot j s, you'll see that part of our Loader for the main character, we create a joystick and assign it to the game as a property of the game. It's new joystick. It takes an options object that's got an unmoved callback. In this case instances gameplay control.

And we also pass in the game as a property. So let's have a look at our joystick class definition. So we pass in an options object. And the first thing we do is create a circle. So that's document create element. And it's a div and we signed some CSS text to it, it's going to be absolute position.

35 Pixels off the bottom with these 80 pixels, the highest 80 pixels. The background is semi transparent gray. This got a border this solid and medium thickness, and the border ratio is 50%. So it's going to end up a circle. Left is 50%. And we also translate it x minus 50%.

That is 50% of its own width. So that policy in the middle, left to right. And then we create a thumb, which is another div element. And we signed the CSS text to that, to position it, so that it's in the center of this background circle. And we append the, the thumb to the circle, and we append the circle to the document body. And then our DOM element.

That's the thing that we're going to move around with touch of mouse movements is going to be the sum We define the maximum radius. In this instance, we're setting it to 40 pixels. And we also say the radius squared, which is maximum radius times maximum radius. It's just a useful thing. later on. We assign or move to and to this as a property and the game as a property.

And then we define where the origin is, which is the offset left and the offset top of our thumb. Assuming our DOM elements been defined, which has, then we define a touchstart event or a mouse down event, depending on whether or not we're a touch device, and that's just going to be joystick tap. So if we have a look at joystick tap, then you can see that it gets the mouse position adds an event listener for move, and up all touch end, same thing with your twitch device or not. So in the move, all we're trying to do is get hold of a forward, we're going to move the sum. And but we're also going to get forward to be a value between one at the top and minus one at the bottom and turn to the value between minus one on the left and one on the right.

And then assuming we've got an on move callback, we call that using game so it's going to be a method of game. And that's going to call play control in the game class, passing in the Properties forward in turn, and we we delete The event listeners if the mouse is lifted, or touch ns, and we return our DOM element back to its origin, as the purpose of saving the origin as a property of this class. So let's have a look at the on move event. You have what we have assigned as our move event. Player control, forward and turn. So that's going to be a value between between minus one and one and turn is going to be valued between minus one and one.

If forwards greater than zero, then we're going to get an action of walk. If not, we're going to get an action of look around. We'll adapt this later so she can actually walk backwards but at the moment, we're just saying that cooked chicken only walk forwards and then we create A property of the player, which is move, who's going to fall was in turn value. And we can use that, in our animate events. See how we're using we're finding out whether a move exists, which happens if the call which in turn have been defined, and then you follow is greater than zero, then we translated along the Zed by a Delta amount. So that's the time since this animate function was last cold.

And we will take the player in the y based on our turn value, and again, we're multiplying that by the Delta time. So that if we, if we reduce our site time to 30 frames per second, or 10 frames a second, she'll still turn the same amount. The purpose of always using the Delta time value is Just for different devices that might be playing a different frame speeds. So that's the, the onscreen joystick

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.