Skip to corpus content
HIMR Public Corpustimestamped source index

Recording

How to make a jumping platformer game on xcode 7! - part 1

2015-12-06 · 11 min

internet_archive
Machine transcript · wording, timing and speaker attribution may be wrong

Wording, speaker labels, and timestamps can still be wrong. A transcript does not establish that statements in the recording are factual. Use the source links and surrounding context.

Read summary

Expand to load the summary.

Open summary page ↗
Source information & transcript revisions

Transcript revisions

  1. rev_57470d71da7371197d4792ae608db03cMachine-generated and unreviewed; may be wrong; not a verified quotation.
    enraw_asractive196 segments

Transcript

en
  1. Hey guys, welcome to this Xcode video.

    Segment details0:00–0:03 · rev_57470d71da7371197d4792ae608db03c_0
  2. Today I'm going to teach you how to make a

    Segment details0:04–0:07 · rev_57470d71da7371197d4792ae608db03c_1
  3. character jump up and down. For example,

    Segment details0:07–0:10 · rev_57470d71da7371197d4792ae608db03c_2
  4. if you want to make like a platforming

    Segment details0:10–0:12 · rev_57470d71da7371197d4792ae608db03c_3
  5. game, this could be useful. So the

    Segment details0:12–0:16 · rev_57470d71da7371197d4792ae608db03c_4
  6. first thing we're going to do is New

    Segment details0:17–0:18 · rev_57470d71da7371197d4792ae608db03c_5
  7. Project, Single View Application,

    Segment details0:18–0:20 · rev_57470d71da7371197d4792ae608db03c_6
  8. and you can just call your product

    Segment details0:22–0:24 · rev_57470d71da7371197d4792ae608db03c_7
  9. whatever. You want to,

    Segment details0:25–0:28 · rev_57470d71da7371197d4792ae608db03c_8
  10. and Objective-C, iPhone, and then Next.

    Segment details0:29–0:32 · rev_57470d71da7371197d4792ae608db03c_9
  11. Okay, then just do Create.

    Segment details0:33–0:35 · rev_57470d71da7371197d4792ae608db03c_10
  12. Okay, first thing you want to do is— it's

    Segment details0:37–0:39 · rev_57470d71da7371197d4792ae608db03c_11
  13. up to you, but I like to put it into

    Segment details0:40–0:42 · rev_57470d71da7371197d4792ae608db03c_12
  14. landscape, so turn off Portrait. You can

    Segment details0:42–0:45 · rev_57470d71da7371197d4792ae608db03c_13
  15. do this in portrait as well if you want,

    Segment details0:45–0:46 · rev_57470d71da7371197d4792ae608db03c_14
  16. but I think it looks better in landscape.

    Segment details0:46–0:48 · rev_57470d71da7371197d4792ae608db03c_15
  17. And then we go to Main Storyboard.

    Segment details0:49–0:51 · rev_57470d71da7371197d4792ae608db03c_16
  18. And just close this left tab. Now what

    Segment details0:52–0:56 · rev_57470d71da7371197d4792ae608db03c_17
  19. it's done is it's in auto layout.

    Segment details0:56–1:01 · rev_57470d71da7371197d4792ae608db03c_18
  20. I like to turn auto layout off and disable

    Segment details1:01–1:04 · rev_57470d71da7371197d4792ae608db03c_19
  21. size classes, so this gives you the iPhone

    Segment details1:04–1:06 · rev_57470d71da7371197d4792ae608db03c_20
  22. size, not that strange square shape. And

    Segment details1:07–1:10 · rev_57470d71da7371197d4792ae608db03c_21
  23. then we go to the 4th tab along— no,

    Segment details1:11–1:14 · rev_57470d71da7371197d4792ae608db03c_22
  24. 3rd— no, wait, click on the top first and

    Segment details1:14–1:17 · rev_57470d71da7371197d4792ae608db03c_23
  25. then do 4th tab along, Orientation, and

    Segment details1:17–1:20 · rev_57470d71da7371197d4792ae608db03c_24
  26. then Landscape or Portrait depending what

    Segment details1:20–1:22 · rev_57470d71da7371197d4792ae608db03c_25
  27. you want. Okay, so now

    Segment details1:23–1:26 · rev_57470d71da7371197d4792ae608db03c_26
  28. we need to create the floor and our

    Segment details1:27–1:29 · rev_57470d71da7371197d4792ae608db03c_27
  29. character and the jump button. So we need

    Segment details1:30–1:32 · rev_57470d71da7371197d4792ae608db03c_28
  30. an ImageView. We need 2 of these

    Segment details1:32–1:34 · rev_57470d71da7371197d4792ae608db03c_29
  31. ImageViews, and make sure these arrows are

    Segment details1:34–1:37 · rev_57470d71da7371197d4792ae608db03c_30
  32. in the center and click off— turn off

    Segment details1:38–1:41 · rev_57470d71da7371197d4792ae608db03c_31
  33. these outer ones. And then just

    Segment details1:41–1:46 · rev_57470d71da7371197d4792ae608db03c_32
  34. reshape it how you want the floor to look

    Segment details1:46–1:48 · rev_57470d71da7371197d4792ae608db03c_33
  35. like. It can be like really big or really

    Segment details1:48–1:50 · rev_57470d71da7371197d4792ae608db03c_34
  36. small. And then just copy, Command+C,

    Segment details1:51–1:54 · rev_57470d71da7371197d4792ae608db03c_35
  37. Command+V, and then just resize it for

    Segment details1:54–1:57 · rev_57470d71da7371197d4792ae608db03c_36
  38. your character. Now he can be skinny, or

    Segment details1:58–2:01 · rev_57470d71da7371197d4792ae608db03c_37
  39. he can be fat, or he could be short. It's

    Segment details2:01–2:03 · rev_57470d71da7371197d4792ae608db03c_38
  40. up to you. Just place him on the floor.

    Segment details2:04–2:05 · rev_57470d71da7371197d4792ae608db03c_39
  41. Now select all of them. Command A,

    Segment details2:07–2:10 · rev_57470d71da7371197d4792ae608db03c_40
  42. and then go into the fourth tab and go on

    Segment details2:11–2:13 · rev_57470d71da7371197d4792ae608db03c_41
  43. Image. Now we didn't need an image. I have

    Segment details2:13–2:16 · rev_57470d71da7371197d4792ae608db03c_42
  44. this red red square prepared. Just drag

    Segment details2:16–2:19 · rev_57470d71da7371197d4792ae608db03c_43
  45. it, drag it onto and do Finish, and then

    Segment details2:19–2:23 · rev_57470d71da7371197d4792ae608db03c_44
  46. it will appear here red dot PNG.

    Segment details2:24–2:26 · rev_57470d71da7371197d4792ae608db03c_45
  47. Now on on Image, just type in the file

    Segment details2:27–2:30 · rev_57470d71da7371197d4792ae608db03c_46
  48. name. Hold on.

    Segment details2:30–2:33 · rev_57470d71da7371197d4792ae608db03c_47
  49. It's not appearing, so just type it as it

    Segment details2:35–2:39 · rev_57470d71da7371197d4792ae608db03c_48
  50. appears here, red.png, and it will show

    Segment details2:39–2:43 · rev_57470d71da7371197d4792ae608db03c_49
  51. you the image as the one you typed in.

    Segment details2:43–2:45 · rev_57470d71da7371197d4792ae608db03c_50
  52. Okay, so we also need a button, so search

    Segment details2:46–2:49 · rev_57470d71da7371197d4792ae608db03c_51
  53. for a button at the bottom right, drag it

    Segment details2:49–2:51 · rev_57470d71da7371197d4792ae608db03c_52
  54. on, and you can just name it jump or

    Segment details2:52–2:55 · rev_57470d71da7371197d4792ae608db03c_53
  55. something. And I don't know why as default

    Segment details2:55–2:59 · rev_57470d71da7371197d4792ae608db03c_54
  56. it always starts off like this. But if you

    Segment details2:59–3:01 · rev_57470d71da7371197d4792ae608db03c_55
  57. don't change it, if you don't change it to

    Segment details3:02–3:04 · rev_57470d71da7371197d4792ae608db03c_56
  58. the center arrows, then it's going to be

    Segment details3:04–3:06 · rev_57470d71da7371197d4792ae608db03c_57
  59. in a different location when you play the

    Segment details3:07–3:08 · rev_57470d71da7371197d4792ae608db03c_58
  60. game. Okay, so go into ViewController.h

    Segment details3:09–3:11 · rev_57470d71da7371197d4792ae608db03c_59
  61. and under interface do open curly

    Segment details3:12–3:15 · rev_57470d71da7371197d4792ae608db03c_60
  62. brackets, close curly brackets, and then

    Segment details3:15–3:18 · rev_57470d71da7371197d4792ae608db03c_61
  63. IBOutlet UIImage,

    Segment details3:18–3:20 · rev_57470d71da7371197d4792ae608db03c_62
  64. and this can be you. And then

    Segment details3:21–3:25 · rev_57470d71da7371197d4792ae608db03c_63
  65. the next one for floor So we always put

    Segment details3:25–3:29 · rev_57470d71da7371197d4792ae608db03c_64
  66. IBOutlet and then UI, and now because

    Segment details3:29–3:31 · rev_57470d71da7371197d4792ae608db03c_65
  67. they're image views, you put ImageView.

    Segment details3:31–3:33 · rev_57470d71da7371197d4792ae608db03c_66
  68. If they were labels, you put UILabel. If

    Segment details3:34–3:36 · rev_57470d71da7371197d4792ae608db03c_67
  69. it's buttons, put UIButton. So IBOutlet

    Segment details3:37–3:39 · rev_57470d71da7371197d4792ae608db03c_68
  70. and then UIButton for the jump button,

    Segment details3:40–3:43 · rev_57470d71da7371197d4792ae608db03c_69
  71. asterisk, and just call it whatever you

    Segment details3:43–3:45 · rev_57470d71da7371197d4792ae608db03c_70
  72. want— jump, whatever, doesn't really

    Segment details3:45–3:46 · rev_57470d71da7371197d4792ae608db03c_71
  73. matter as long as it's easy to remember

    Segment details3:47–3:49 · rev_57470d71da7371197d4792ae608db03c_72
  74. for you. Now we need an integer. So

    Segment details3:49–3:53 · rev_57470d71da7371197d4792ae608db03c_73
  75. integers and bools go under import. We

    Segment details3:53–3:55 · rev_57470d71da7371197d4792ae608db03c_74
  76. need an integer for the jump, jump value,

    Segment details3:56–3:58 · rev_57470d71da7371197d4792ae608db03c_75
  77. so let's just call it jumpValue.

    Segment details3:59–4:01 · rev_57470d71da7371197d4792ae608db03c_76
  78. And then we also need an IBAction for the

    Segment details4:03–4:07 · rev_57470d71da7371197d4792ae608db03c_77
  79. jump button. IBAction is just where you

    Segment details4:07–4:11 · rev_57470d71da7371197d4792ae608db03c_78
  80. put the code for the button so that when

    Segment details4:11–4:13 · rev_57470d71da7371197d4792ae608db03c_79
  81. you press the button, this code will run.

    Segment details4:14–4:15 · rev_57470d71da7371197d4792ae608db03c_80
  82. Let's call it jumpCode.

    Segment details4:15–4:17 · rev_57470d71da7371197d4792ae608db03c_81
  83. And we also need a timer so that when the

    Segment details4:19–4:23 · rev_57470d71da7371197d4792ae608db03c_82
  84. character goes up in the air, he falls

    Segment details4:23–4:25 · rev_57470d71da7371197d4792ae608db03c_83
  85. back down to the ground. So we'll call it

    Segment details4:25–4:27 · rev_57470d71da7371197d4792ae608db03c_84
  86. NSTimer and asterisk, and we'll call

    Segment details4:27–4:31 · rev_57470d71da7371197d4792ae608db03c_85
  87. it fallingTimer.

    Segment details4:31–4:33 · rev_57470d71da7371197d4792ae608db03c_86
  88. And then we need a void as well for the

    Segment details4:37–4:39 · rev_57470d71da7371197d4792ae608db03c_87
  89. timer, and we'll call it fallingCode.

    Segment details4:39–4:42 · rev_57470d71da7371197d4792ae608db03c_88
  90. So I think we're all done. Now we need to

    Segment details4:44–4:47 · rev_57470d71da7371197d4792ae608db03c_89
  91. link up these, uh, what are they called,

    Segment details4:47–4:50 · rev_57470d71da7371197d4792ae608db03c_90
  92. thingies, the buttons and stuff. So we

    Segment details4:50–4:54 · rev_57470d71da7371197d4792ae608db03c_91
  93. have the floor on outlets, drag it onto

    Segment details4:54–4:57 · rev_57470d71da7371197d4792ae608db03c_92
  94. the floor, and you, drag it onto you,

    Segment details4:57–5:00 · rev_57470d71da7371197d4792ae608db03c_93
  95. and jump, we'll drag that onto the jump

    Segment details5:01–5:04 · rev_57470d71da7371197d4792ae608db03c_94
  96. button. And then the actions, received

    Segment details5:04–5:06 · rev_57470d71da7371197d4792ae608db03c_95
  97. actions, jump code. Go on to

    Segment details5:07–5:10 · rev_57470d71da7371197d4792ae608db03c_96
  98. jump and do touchUpInside. That just means

    Segment details5:11–5:13 · rev_57470d71da7371197d4792ae608db03c_97
  99. that the code will run after you've

    Segment details5:13–5:17 · rev_57470d71da7371197d4792ae608db03c_98
  100. pressed it and then let go of pressing it.

    Segment details5:17–5:19 · rev_57470d71da7371197d4792ae608db03c_99
  101. So then we go to ViewController.m

    Segment details5:21–5:24 · rev_57470d71da7371197d4792ae608db03c_100
  102. and we have to do our timer. So we want

    Segment details5:25–5:27 · rev_57470d71da7371197d4792ae608db03c_101
  103. the timer to run as soon as the game

    Segment details5:27–5:28 · rev_57470d71da7371197d4792ae608db03c_102
  104. launches, so put it in viewDidLoad. Now

    Segment details5:29–5:31 · rev_57470d71da7371197d4792ae608db03c_103
  105. our timer is called fallingTimer equals

    Segment details5:31–5:32 · rev_57470d71da7371197d4792ae608db03c_104
  106. square bracket, NSTimer scheduled,

    Segment details5:35–5:38 · rev_57470d71da7371197d4792ae608db03c_105
  107. and it will be the second one down with

    Segment details5:39–5:41 · rev_57470d71da7371197d4792ae608db03c_106
  108. target, TimeInterval 0.05, target self,

    Segment details5:41–5:45 · rev_57470d71da7371197d4792ae608db03c_107
  109. selector @selector, and in the brackets

    Segment details5:45–5:49 · rev_57470d71da7371197d4792ae608db03c_108
  110. we put the void name which was

    Segment details5:49–5:51 · rev_57470d71da7371197d4792ae608db03c_109
  111. forwardingCode. And then userInfo should

    Segment details5:51–5:55 · rev_57470d71da7371197d4792ae608db03c_110
  112. be nil, repeats yes, and then semicolon.

    Segment details5:55–5:58 · rev_57470d71da7371197d4792ae608db03c_111
  113. Okay, so now we need to do the void for

    Segment details5:59–6:03 · rev_57470d71da7371197d4792ae608db03c_112
  114. the falling— what was it— falling code,

    Segment details6:03–6:06 · rev_57470d71da7371197d4792ae608db03c_113
  115. and then open curly brackets. Now this is

    Segment details6:07–6:11 · rev_57470d71da7371197d4792ae608db03c_114
  116. for the

    Segment details6:11–6:16 · rev_57470d71da7371197d4792ae608db03c_115
  117. movement for the falling movement,

    Segment details6:16–6:19 · rev_57470d71da7371197d4792ae608db03c_116
  118. so we do u.center CGPoint.make

    Segment details6:19–6:26 · rev_57470d71da7371197d4792ae608db03c_117
  119. u.center.x. Now falling is going to be

    Segment details6:30–6:32 · rev_57470d71da7371197d4792ae608db03c_118
  120. u.center.y, but instead of putting a

    Segment details6:33–6:34 · rev_57470d71da7371197d4792ae608db03c_119
  121. number, we're going to put minus

    Segment details6:35–6:36 · rev_57470d71da7371197d4792ae608db03c_120
  122. jumpValue. And jumpValue

    Segment details6:36–6:41 · rev_57470d71da7371197d4792ae608db03c_121
  123. is going to be jumpValue equals jumpValue

    Segment details6:41–6:45 · rev_57470d71da7371197d4792ae608db03c_122
  124. minus 5. So it should

    Segment details6:45–6:49 · rev_57470d71da7371197d4792ae608db03c_123
  125. be falling by -5 every time it this timer

    Segment details6:50–6:53 · rev_57470d71da7371197d4792ae608db03c_124
  126. is running. So we can test it out, just

    Segment details6:54–6:55 · rev_57470d71da7371197d4792ae608db03c_125
  127. put it at the top, see if it falls down.

    Segment details6:55–6:56 · rev_57470d71da7371197d4792ae608db03c_126
  128. It might fall up, I'm not sure. I get

    Segment details6:57–6:59 · rev_57470d71da7371197d4792ae608db03c_127
  129. confused with minus and plus sometimes.

    Segment details7:00–7:01 · rev_57470d71da7371197d4792ae608db03c_128
  130. Where is it? So it takes some time to

    Segment details7:08–7:11 · rev_57470d71da7371197d4792ae608db03c_129
  131. open. Where is it? There we go. So it's

    Segment details7:11–7:14 · rev_57470d71da7371197d4792ae608db03c_130
  132. just fallen, but what we want it to do is

    Segment details7:14–7:16 · rev_57470d71da7371197d4792ae608db03c_131
  133. when it hits the floor We want it to stop

    Segment details7:17–7:19 · rev_57470d71da7371197d4792ae608db03c_132
  134. falling, so we do if CGRect intersectsRect

    Segment details7:19–7:24 · rev_57470d71da7371197d4792ae608db03c_133
  135. , and then— so

    Segment details7:27–7:31 · rev_57470d71da7371197d4792ae608db03c_134
  136. what do we want to do? jumpValue equals 0.

    Segment details7:31–7:35 · rev_57470d71da7371197d4792ae608db03c_135
  137. Let's see what happens now. Now it's

    Segment details7:35–7:38 · rev_57470d71da7371197d4792ae608db03c_136
  138. probably going to stop falling, and then

    Segment details7:39–7:40 · rev_57470d71da7371197d4792ae608db03c_137
  139. it's going to get stuck in the floor.

    Segment details7:41–7:42 · rev_57470d71da7371197d4792ae608db03c_138
  140. Yeah, it just gets stuck in the floor,

    Segment details7:43–7:44 · rev_57470d71da7371197d4792ae608db03c_139
  141. but it keeps going down for some reason.

    Segment details7:44–7:46 · rev_57470d71da7371197d4792ae608db03c_140
  142. So we'll also put— make it so the

    Segment details7:47–7:50 · rev_57470d71da7371197d4792ae608db03c_141
  143. character appears at the top of the floor.

    Segment details7:51–7:52 · rev_57470d71da7371197d4792ae608db03c_142
  144. u.center CGPoint.make .

    Segment details7:53–8:00 · rev_57470d71da7371197d4792ae608db03c_143
  145. Now we don't want it to appear at the

    Segment details8:01–8:02 · rev_57470d71da7371197d4792ae608db03c_144
  146. center of the floor, we want it to appear

    Segment details8:03–8:04 · rev_57470d71da7371197d4792ae608db03c_145
  147. at the top of the floor. So I'm not sure

    Segment details8:04–8:07 · rev_57470d71da7371197d4792ae608db03c_146
  148. what the correct number would be, so it

    Segment details8:07–8:09 · rev_57470d71da7371197d4792ae608db03c_147
  149. might be something like -50. Just test

    Segment details8:09–8:13 · rev_57470d71da7371197d4792ae608db03c_148
  150. So it's still a bit too high, so let's try

    Segment details8:17–8:20 · rev_57470d71da7371197d4792ae608db03c_149
  151. -70.

    Segment details8:20–8:20 · rev_57470d71da7371197d4792ae608db03c_150
  152. That's about right. Try 75, just so

    Segment details8:26–8:30 · rev_57470d71da7371197d4792ae608db03c_151
  153. it looks like he's on top of the floor,

    Segment details8:30–8:31 · rev_57470d71da7371197d4792ae608db03c_152
  154. not inside of the floor. Okay, now that's

    Segment details8:31–8:35 · rev_57470d71da7371197d4792ae608db03c_153
  155. too high, so it keeps bouncing him back

    Segment details8:35–8:37 · rev_57470d71da7371197d4792ae608db03c_154
  156. up. It's kind of funny actually. Try 71.

    Segment details8:38–8:40 · rev_57470d71da7371197d4792ae608db03c_155
  157. Okay, so he's like hovering slightly.

    Segment details8:45–8:47 · rev_57470d71da7371197d4792ae608db03c_156
  158. Okay, now we do need to do the jump

    Segment details8:48–8:50 · rev_57470d71da7371197d4792ae608db03c_157
  159. button. So we do IBAction jump,

    Segment details8:50–8:54 · rev_57470d71da7371197d4792ae608db03c_158
  160. jumpCode. Get rid of this extra sender and

    Segment details8:55–9:00 · rev_57470d71da7371197d4792ae608db03c_159
  161. then do open curly brackets. Now we want

    Segment details9:00–9:04 · rev_57470d71da7371197d4792ae608db03c_160
  162. every time you press the button, we'll put

    Segment details9:04–9:06 · rev_57470d71da7371197d4792ae608db03c_161
  163. jumpValue equals 50.

    Segment details9:06–9:11 · rev_57470d71da7371197d4792ae608db03c_162
  164. I'm not sure if this is right. Let's just

    Segment details9:12–9:14 · rev_57470d71da7371197d4792ae608db03c_163
  165. test it out. Okay, yeah, that's right.

    Segment details9:15–9:19 · rev_57470d71da7371197d4792ae608db03c_164
  166. So that's it, we've done— we've made a

    Segment details9:20–9:22 · rev_57470d71da7371197d4792ae608db03c_165
  167. jump button. He jumps. If you keep

    Segment details9:22–9:24 · rev_57470d71da7371197d4792ae608db03c_166
  168. pressing it, he keeps jumping up, and then

    Segment details9:24–9:26 · rev_57470d71da7371197d4792ae608db03c_167
  169. he falls faster and faster. So if you keep

    Segment details9:26–9:28 · rev_57470d71da7371197d4792ae608db03c_168
  170. making him go really high, he ends up

    Segment details9:29–9:30 · rev_57470d71da7371197d4792ae608db03c_169
  171. falling so fast— oh, there we go. Last

    Segment details9:31–9:33 · rev_57470d71da7371197d4792ae608db03c_170
  172. time I did this, he fell through the

    Segment details9:33–9:35 · rev_57470d71da7371197d4792ae608db03c_171
  173. floor. So that's how you make a platformer

    Segment details9:36–9:40 · rev_57470d71da7371197d4792ae608db03c_172
  174. game jump, jump button. Pretty easy,

    Segment details9:40–9:43 · rev_57470d71da7371197d4792ae608db03c_173
  175. right? So if you want, you can fiddle

    Segment details9:43–9:46 · rev_57470d71da7371197d4792ae608db03c_174
  176. around with these values. You can make it

    Segment details9:46–9:47 · rev_57470d71da7371197d4792ae608db03c_175
  177. jump a bit lower, so lower the number and

    Segment details9:48–9:54 · rev_57470d71da7371197d4792ae608db03c_176
  178. he'll jump not so high.

    Segment details9:55–9:56 · rev_57470d71da7371197d4792ae608db03c_177
  179. If you increase jump value here, he'll

    Segment details9:58–10:02 · rev_57470d71da7371197d4792ae608db03c_178
  180. fall faster.

    Segment details10:02–10:03 · rev_57470d71da7371197d4792ae608db03c_179
  181. So he falls faster, so he can't jump so

    Segment details10:09–10:11 · rev_57470d71da7371197d4792ae608db03c_180
  182. high. So that's it. Hope you learned

    Segment details10:11–10:14 · rev_57470d71da7371197d4792ae608db03c_181
  183. something. Hope it wasn't too fast. It's

    Segment details10:14–10:16 · rev_57470d71da7371197d4792ae608db03c_182
  184. not really much code. All you need is the

    Segment details10:16–10:18 · rev_57470d71da7371197d4792ae608db03c_183
  185. timer, the void, so the timer

    Segment details10:19–10:23 · rev_57470d71da7371197d4792ae608db03c_184
  186. runs this code to make him fall down. And

    Segment details10:24–10:27 · rev_57470d71da7371197d4792ae608db03c_185
  187. then the jump button— all the jump button

    Segment details10:27–10:29 · rev_57470d71da7371197d4792ae608db03c_186
  188. is, you add 35 to the jump value.

    Segment details10:29–10:31 · rev_57470d71da7371197d4792ae608db03c_187
  189. And then you need 3 IB outlets: you,

    Segment details10:34–10:37 · rev_57470d71da7371197d4792ae608db03c_188
  190. floor, and jump button, and an end timer.

    Segment details10:37–10:40 · rev_57470d71da7371197d4792ae608db03c_189
  191. So pretty simple. I guess in the next

    Segment details10:40–10:43 · rev_57470d71da7371197d4792ae608db03c_190
  192. lesson we can do— we can build on this.

    Segment details10:43–10:45 · rev_57470d71da7371197d4792ae608db03c_191
  193. We can do a left button and a right button

    Segment details10:45–10:48 · rev_57470d71da7371197d4792ae608db03c_192
  194. to make him move left to right. So yeah,

    Segment details10:48–10:51 · rev_57470d71da7371197d4792ae608db03c_193
  195. look forward to that video, and I'll see

    Segment details10:51–10:53 · rev_57470d71da7371197d4792ae608db03c_194
  196. you next time.

    Segment details10:53–10:53 · rev_57470d71da7371197d4792ae608db03c_195