I don’t really know how to explain this but I’ll try.
I’m making a game using scene. I am using four buttons to control the movement of the player, however currently, if I hold down on the movement buttons, the character only moves one step in the given direction. The reason for this is because in def touch_began(self, touch): I have only told it to move the player one step. I tried implementing a variable that changed depending on what button was pressed and then in def update(self): telling it to move in whichever direction the variable (move) specifies. When I try this, the buttons don’t even respond. How can I get it so the player (self.player) moves in the direction of the button pressed until the user is no longer pressing the button?
Here is my game code at the moment (I have only programmed the up button in touch_began):
```
from scene import *
import time
class Game(Scene):
def setup(self):
self.background_color = '#ffffff'
#Up button
self.upCtrl = SpriteNode('2018-07-21 7.32.39 pm.png')
self.upCtrl.x_scale = 100/2048
self.upCtrl.y_scale = 100/2048
self.add_child(self.upCtrl)
self.upCtrl.position = (self.size.x/2), 175
#Left button
self.leftCtrl = SpriteNode('2018-07-21 7.17.22 pm (1).png')
self.leftCtrl.x_scale = 100/600
self.leftCtrl.y_scale = 100/600
self.add_child(self.leftCtrl)
self.leftCtrl.position = (self.size.x/2)-100, 75
#downButton
self.downCtrl = SpriteNode('2018-07-21 7.17.22 pm (2).png')
self.downCtrl.x_scale = 100/600
self.downCtrl.y_scale = 100/600
self.add_child(self.downCtrl)
self.downCtrl.position = self.size.x/2, 75
#Right button
self.rightCtrl = SpriteNode('2018-07-21 7.17.22 pm (3).png')
self.rightCtrl.x_scale = 100/600
self.rightCtrl.y_scale = 100/600
self.add_child(self.rightCtrl)
self.rightCtrl.position = (self.size.x/2)+100, 75
#Game map
self.gameMap = SpriteNode('2018-07-21 8.06.38 pm.png')
self.gameMap.x_scale = 2
self.gameMap.y_scale = 2
self.add_child(self.gameMap)
self.gameMap.position = self.size.x/2, (self.size.y/2)+100
#Player sprite
self.player = SpriteNode('2018-07-21 9.05.27 pm.png')
self.player.x_scale = 2
self.player.y_scale = 2
self.add_child(self.player)
self.player.position = (self.size.w/2)-415, (self.size.h/2)+100
def touch_began(self, touch):
touch_loc = touch.location
if touch_loc in self.upCtrl.frame:
self.player.position = self.player.position.x, self.player.position.y+5
run(Game(), LANDSCAPE, show_fps=True)```