Я уже сделал несколько проектов, но на этот раз я столкнулся с проблемой.
Я сделал тип игры, когда стрелка пересекает полосу, и вы нажимаете кнопку, чтобы остановить ее, и вы нацеливаете ее как можно ближе к середина.
Кнопка, которую нужно нажать, рандомизирована (w, a, s, d). Когда кнопка появляется 2 или более раз подряд, в другой раз она останавливает стрелку в первом кадре, как если бы она была нажата все время. Это то же самое, когда я заканчиваю мини-игру со стрелками, а я go в 2D-RPG-подобной игре. Он продолжает двигаться в том направлении, в котором я последний раз нажимал, как будто кнопка застряла.
Когда я нажимаю его снова, он останавливается и я могу свободно двигаться.
Я могу включить код, если вы хотите посмотреть, но он длинный и сложный, поэтому я не хочу, чтобы вы просмотрите все это, если не нужно.
Если вы можете помочь или у вас есть вопросы, запишите их, спасибо.
Редактировать: Я включаю часть кода, в котором мини-игра со стрелками Если вы хотите полную версию, то это около 200 строк. Спасибо.
while borba:
if enemyhp<=0:
break
crtanjeploceborbe()
crtanjeenemyhealthbar(enemyhp)
crtanjeneprijatelja((300+500)/2-100/2,10,neprijateljnb)
pygame.display.update()
mis=pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
quit()
if event.type==pygame.MOUSEBUTTONDOWN:
if mis[0]<fightbuttonpos[2] and mis[0]>fightbuttonpos[0] and mis[1]<fightbuttonpos[1] and mis[1]>fightbuttonpos[3]:
fightmeterx=random.randint(actionspaceavailablex[0]-1,actionspaceavailablex[1])
fightmetery=random.randint(actionspaceavailabley[0]-1,actionspaceavailabley[1])
button=random.choice(["w","a","s","d"])
poztipke=fightmeterx-45
brzinatipke=2.5
natezanje=True
while natezanje:
if poztipke>=fightmeterx+380-45:
poztipke=fightmeterx+380-45
pygame.time.wait(2500)
dmg=5
break
for event in pygame.event.get():
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_w:
buttonpress="w"
elif event.key==pygame.K_a:
buttonpress="a"
elif event.key==pygame.K_d:
buttonpress="d"
elif event.key==pygame.K_s:
buttonpress="s"
if buttonpress==button:
if poztipke+45<=fightmeterx+104 or poztipke>=fightmeterx+344:
dmg=5
elif poztipke+45<=fightmeterx+190 or poztipke>=fightmeterx+302:
dmg=10
elif poztipke+45<=fightmeterx+261:
dmg=20
else:
dmg=40
pygame.time.wait(1500)
borba=True
natezanje=False
crtanjeploceborbe()
crtanjeenemyhealthbar(enemyhp)
crtanjeneprijatelja((300+500)/2-100/2,10,neprijateljnb)
crtanjefightmetera(fightmeterx,fightmetery)
if button == "w":
crtanjewtipke(poztipke,fightmetery-90)
elif button == "a":
crtanjeatipke(poztipke,fightmetery-90)
elif button == "s":
crtanjestipke(poztipke,fightmetery-90)
else:
crtanjedtipke(poztipke,fightmetery-90)
pygame.display.update()
brzinatipke=brzinatipke*1.015
poztipke+=brzinatipke
enemyhp-=dmg