2015-06-15 3 views
0

Я сделал код, который перемещает изображение (с помощью мыши) под названием bulb, используя pygame, но когда я перемещаю его в левую сторону в нижней части экрана, он становится сосать и наклоняться ковыряться назад снова любая помощь будет удивительно большое спасибоперемещение изображения с помощью мыши в pygame

import pygame 
import math 

pygame.init() 

width = 800 
height = 800 

black = (0,0,0) 
white = (255, 255, 255) 
red = (255,0,0) 

gameDisplay = pygame.display.set_mode((width, height)) #make the display 
pygame.display.set_caption("car game") #title of the window 
clock = pygame.time.Clock() #frames per second defined here 

bulb = pygame.image.load("bulb.png") 

def bulbfunc(x,y): 
    gameDisplay.blit(bulb, (x,y)) 


def mainloop(): 
    gameExit = False 
    mouseDown = False 
    x = width - 170 
    y = 20 
    while not gameExit: 
     for event in pygame.event.get(): #when any action is done by the user 
      if event.type == pygame.QUIT: 
       quit() 
     gameDisplay.fill(white) 
     bulbfunc(x,y) 
     clock.tick(60) 
     pygame.display.update() 


     clickstatus = pygame.mouse.get_pressed() 
     (xs, ys) = pygame.mouse.get_pos() 
     if mouseDown == False: 
      if (x - 45) < xs < (x + 45) and (y - 45) < ys < (x + 45): 
       print("true") 
       print(x) 
       if clickstatus[0] == 1: 
        mouseDown = True 

     if mouseDown == True: 
      if clickstatus[0] == 1: 
       (x, y) = (xs, ys) 
      else: 
       mouseDown = False 



mainloop() 
pygame.exit() 
exit() 

ответ

1

у вас есть опечатка в этой строке:

if (x - 45) < xs < (x + 45) and (y - 45) < ys < (x + 45) 

Оно должно быть:

if (x - 45) < xs < (x + 45) and (y - 45) < ys < (y + 45) 

Примечание это (у + 45) в конце вместо (х + 45)

+0

Спасибо, что очень полезно, спасибо –

1

У вас есть строка кода, как это:

if (x - 45) < xs < (x + 45) and (y - 45) < ys < (x + 45): 

Я предполагаю, что вы имеете в виду, чтобы последнее условие как (y + 45). Это объясняет, что он застревает с левой стороны внизу, где ys большой, а x мало, поэтому второе условие никогда не выполняется. Копирование и вставка могут быть опасны, если вы не будете осторожны!

+0

Большое вам спасибо за помощь –

Смежные вопросы