I'm trying to make an interactive game for special needs children, where you click on a button and it moves the photo on. I need some help however as when I run my code, the console prints "..." as it should when you click on the button, and when you click away from the buttons it does not. All is working there. No matter where you click above or below a button, it recognises it as the button. So it cannot distinguish the y coordinate column as not part of the button's co-ordinates. Help would be appreciated! See photos: [Game window][1]... Code:
import pygame
import random
pygame.init()
#define variables
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
background_colour = (255, 255, 255)
(width, height) = (700, 500)
x = 250
y = 100
mpos = pygame.mouse.get_pos()
mpress = pygame.mouse.get_pressed()
Button1 = 'photos/buttonCow.png'
Button2 = 'photos/buttonDuck.png'
Button3 = 'photos/buttonHorse.png'
Button4 = 'photos/buttonSheep.png'
imageOption1 = pygame.image.load(Button1)
imageOption2 = pygame.image.load(Button2)
imageOption3 = pygame.image.load(Button3)
imageOption4 = pygame.image.load(Button4)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Game!')
screen.fill(background_colour)
running = True
def buttons():
if pygame.mouse.get_pos() >= (200, 400):
if pygame.mouse.get_pos() <= (260, 430):
print("horse")
if pygame.mouse.get_pos() >= (300, 400):
if pygame.mouse.get_pos() <= (360, 430):
print("duck")
if pygame.mouse.get_pos() >= (400, 400):
if pygame.mouse.get_pos() <= (460, 430):
print("cow")
if pygame.mouse.get_pos() >= (500, 400):
if pygame.mouse.get_pos() <= (560, 430):
print("sheep")
def displayOptions():
screen.blit(imageOption1, (400, 400))
screen.blit(imageOption2, (300, 400))
screen.blit(imageOption3, (200, 400))
screen.blit(imageOption4, (500, 400))
def whichAnimalFunc():
whichAnimal = random.randint(0, 4)
if whichAnimal == 1:
image = pygame.image.load('photos/cow.png')
screen.fill(WHITE)
screen.blit(image, (x, y))
displayOptions()
pygame.display.update()
if whichAnimal == 2:
image = pygame.image.load('photos/duck.png')
screen.fill(WHITE)
screen.blit(image, (x, y))
displayOptions()
pygame.display.update()
if whichAnimal == 3:
image = pygame.image.load('photos/horse.png')
screen.fill(WHITE)
screen.blit(image, (x, y))
displayOptions()
pygame.display.update()
elif whichAnimal == 4:
image = pygame.image.load('photos/sheep.jpg')
screen.fill(WHITE)
screen.blit(image, (x, y))
displayOptions()
pygame.display.update()
else:
pygame.QUIT
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False # allows quit button to work
if event.type == pygame.MOUSEBUTTONDOWN:
pos = pygame.mouse.get_pos()
print(pos)
buttons()
whichAnimalFunc()
pygame.display.update()```
[1]: https://i.stack.imgur.com/xDCa0.png