Я знаю, когда я нахожусь в диапазоне X и Y
Я делал игру, и теперь я хочу посмотреть, как Pygame узнает, что я в х игроке и у игрока.
Я должен взломать сейф, чтобы сделать это, я должен стоять там, где он есть, и оставаться там в течение 3 секунд.
проблема даже в том, что мне удалось предупредить пигмея о том, что я нахожусь в безопасном месте, как пигмей мог знать, что я в безопасности в течение 3 секунд.
Это неоптимально:
import time
now = time.time()
future = now + 3
while future > now:
#IT DOESNT WORK WELL IN WHILE LOOP TO ALERT YA,
Есть ли лучшее решение?
1 ответ
Что вы могли бы сделать, чтобы "предупредить" Pygame / ваш код, вы могли бы использовать if
заявления, если вы используете не-ООП и все, что у вас есть, это список координат для вашего местоположения игрока, или если у вас есть объект для вашего игрока, вы могли бы pygame.sprite.Sprite
как супер класс. Вот решение, если вы используете список координат, а не большой класс.
loc = [x, y] # Don't run this because it won't understand what x and y are. This is just an example
safe_rect = ( x , y , w , h ) # Using tuple because I assume that the safe doesn't move
while True:
if loc[0] >= safe_rect[0] and # The newlines are for readability
loc[0] < safe_rect[0] + safe_rect[2] and
loc[1] >= safe_rect[1] and
loc[1] < safe_rect[1] + safe_rect[3]:
not_yet_existent_do_something_function() # Performs statements once inside the safe
Если вы хотите включить таймер, сделайте это:
import time
loc = [x, y]
safe_rect = ( x , y , w , h )
# Time variables
time = time.time()
time_wanted = time + 3 # 3 seconds after the time is assigned to time
while True:
if loc[0] >= safe_rect[0] and
loc[0] < safe_rect[0] + safe_rect[2] and
loc[1] >= safe_rect[1] and
loc[1] < safe_rect[1] + safe_rect[3]:
if time.time() > time_wanted:
not_yet_existent_do_something_function()
Я надеюсь, что это работает для вас, если у вас есть вопрос о том, что я сделал, пожалуйста, спросите меня.