@@ -150,6 +150,7 @@ def movePlayer(self, direction: int):
150150
151151 # decrease energy
152152 self .player .removeEnergy (self .config .playerMovementEnergyCost )
153+ self .player .setTickLastMoved (self .tick )
153154
154155 def canBePickedUp (self , entity ):
155156 itemTypes = [Wood , Leaves , Grass , Apple ]
@@ -234,6 +235,8 @@ def handleKeyDownEvent(self, key):
234235 x , y = self .graphik .getGameDisplay ().get_size ()
235236 self .captureScreen ("screenshot-" + str (datetime .datetime .now ()).replace (" " , "-" ).replace (":" , "." ) + ".png" , (0 ,0 ), (x ,y ))
236237 self .status .set ("screenshot saved" , self .tick )
238+ elif key == pygame .K_LSHIFT :
239+ self .player .setSpeed (self .player .getSpeed ()* self .config .runSpeedFactor )
237240
238241 def handleKeyUpEvent (self , key ):
239242 if (key == pygame .K_w or key == pygame .K_UP ) and self .player .getDirection () == 0 :
@@ -248,6 +251,8 @@ def handleKeyUpEvent(self, key):
248251 self .player .setInteracting (False )
249252 elif key == pygame .K_q :
250253 self .player .setPlacing (False )
254+ elif key == pygame .K_LSHIFT :
255+ self .player .setSpeed (self .player .getSpeed ()/ self .config .runSpeedFactor )
251256
252257 # @source https://stackoverflow.com/questions/63342477/how-to-take-screenshot-of-entire-display-pygame
253258 def captureScreen (self , name , pos , size ): # (pygame Surface, String, tuple, tuple)
@@ -305,7 +310,8 @@ def run(self):
305310 elif event .type == pygame .VIDEORESIZE :
306311 self .initializeLocationWidthAndHeight ()
307312
308- self .movePlayer (self .player .direction )
313+ if self .player .getTickLastMoved () + 30 / self .player .getSpeed () < self .tick :
314+ self .movePlayer (self .player .direction )
309315
310316 if self .player .isInteracting ():
311317 self .executeInteractAction ()
0 commit comments