On Tue, Nov 17, 2009 at 2:51 PM, Rolf Sievers
<rolf.sievers@xxxxxxxx> wrote:
I made a little example of drag and drop, not sure if you want that.
# CC0 1.0 Universal
# http://creativecommons.org/publicdomain/zero/1.0/
from sys import exit
from pygame.locals import *
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
clock = pygame.time.Clock()
# create the rect to drag&drop, center it on the screen
rect = pygame.Rect(0, 0, 100, 100)
rect.center = screen.get_rect().center
draging = None
while True:
clock.tick(30)
for e in pygame.event.get():
if e.type == QUIT:
pygame.quit()
exit()
elif e.type == MOUSEBUTTONDOWN:
if e.button == 1:
if draging is None:
if rect.collidepoint(e.pos): # make sure you actually hover the rect
draging = (rect.centerx-e.pos[0], rect.centery-e.pos[1])
else:
draging = None
elif e.type == MOUSEMOTION:
if draging is not None:
rect.centerx = e.pos[0] + draging[0]
rect.centery = e.pos[1] + draging[1]
screen.fill((255, 255, 255))
pygame.draw.rect(screen, (0, 0, 200), rect)
pygame.display.flip()
# end of CC0 1.0 Universal
Thiago Petruccelli schrieb:
Hi!
I am making a game in wich the player has to fill an area with tiles. It's an educational game. But I got a problem with pygame events... Actually I think it's a simple problem, but I don't know how to solve.
There are two functionalities for the left click of the mouse: the first is to put a tile in the area, when dragging one tile, and the other is to remove one tile of the area (when not dragging). The problem is that, when I put both codes together, the two things happen at the same time - it puts the tile and then removes it. I've tried to block the removal of the tile setting a variable, "placed", which blocks the action of removing the tile until the next event handling. But it didn't work.
Can someone help me solve this?
Thanks in advance,
--
Thiago Henrique Petruccelli