Почему метод move() запускает метод move(), хотя я до сих пор не щелкнул мышью?Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Почему метод move() запускает метод move(), хотя я до сих пор не щелкнул мышью?

Сообщение Гость »


Я пытаюсь запрограммировать кворидор для настольной игры, но в моей функции «move()», которая должна перемещать игрока, она запускает другую функцию moving(), которая должна запускаться только после того, как я щелкнул мышью внутри хитбокс игрока, но он запускает moving() без записи щелчка мыши. Почему?
Вдобавок, функция moving() должна рисовать круги меньшего размера, обозначающие доступные ходы, но они появляются без щелчков мышью, И игроки больше не рисуются.
Я определенно еще не закончил весь проект, но сначала хочу решить эту проблему. Буду признателен за любую помощь
Инициализация:

Код: Выделить всё

import pygame

pygame.display.set_caption("Quorridor")
x = 440
y = 440
background = pygame.display.set_mode((x, y))
pygame.init()

def board():
background.fill((13,152,186))
for x in range(0,450,50):
pygame.draw.rect(background,(0, 71, 171),(x,0,40,40))
pygame.draw.rect(background,(20, 52, 164),(x,50,40,40))
pygame.draw.rect(background,(0, 71, 171),(x,100,40,40))
pygame.draw.rect(background,(20, 52, 164),(x,150,40,40))
pygame.draw.rect(background,(0, 71, 171),(x,200,40,40))
pygame.draw.rect(background,(20, 52, 164),(x,250,40,40))
pygame.draw.rect(background,(0, 71, 171),(x,300,40,40))
pygame.draw.rect(background,(20, 52, 164),(x,350,40,40))
pygame.draw.rect(background,(0, 71, 171),(x,400,40,40))

class player(object):
def __init__(self,x,y,turn):
self.walls = 10
self.x=x
self.y=y
self.Pos=(x,y)
self.moveUp = False
self.moveRight = True
self.moveLeft = True
self.moveDown = False
self.turn=turn

def moves(self): # shows possible moves
if self.moveUp:
pygame.draw.circle(background,(170, 74, 68),(self.x,self.y-50),5)
if self.moveDown:
pygame.draw.circle(background,(170, 74, 68),(self.x,self.y+50),5)
if self.moveLeft:
pygame.draw.circle(background,(170, 74, 68),(self.x-50,self.y),5)
if self.moveRight:
pygame.draw.circle(background,(170, 74, 68),(self.x+50,self.y),5)
pygame.display.flip()

def move(self): # moves the player
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:
x, y = pygame.mouse.get_pos()
print(x,y)
if self.x-x= -20:
if self.y-y= -20:
print("True")
self.moves()
if self.x-x= -20: # move down
if y-self.y 

Источник: [url]https://stackoverflow.com/questions/78142865/why-does-move-run-moves-although-i-still-havent-clicked-the-mouse[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»