From fddec5fb8eabe6fb44940bada6b590e472ff3c34 Mon Sep 17 00:00:00 2001 From: coolestdude1 Date: Thu, 18 Feb 2010 10:02:40 +0000 Subject: added in box mouse tracking and fixed events --- diff --git a/blocku.py b/blocku.py index 67bb2f2..85b3507 100644 --- a/blocku.py +++ b/blocku.py @@ -1,3 +1,11 @@ + +"""Main Blocku game logic class + +import every thing that the activity needs and run game code + +Authored by Fran Rogers and Ariel Zamparini +""" + #!/usr/bin/python import pygame, random, os.path from pygame.locals import * @@ -35,7 +43,11 @@ class Block(pygame.sprite.Sprite): def __init__(self, north=None, east=None, south=None, west=None): pygame.sprite.Sprite.__init__(self, self.containers) self.image = self.images[0] - self.rect = self.image.get_rect().move(300, 300) + self.rect = self.image.get_rect().move(200, 200) + self.font = pygame.font.Font(None, 20) + self.font.set_italic(1) + self.color = Color('red') + self.update() self.north = north self.east = east self.south = south @@ -43,8 +55,7 @@ class Block(pygame.sprite.Sprite): def update(self): pass - #if (mouseMove) - # self.rect.move(mouseX-posRelX,mouseY-posRelY) + # game logic here for snapping to grid ...? def move(self, direction): # up = 0, right = 1, down = 2, left = 3 if direction == 0: @@ -57,6 +68,14 @@ class Block(pygame.sprite.Sprite): self.rect.move_ip(-KEYBOARDMOVESPEED,0) #keep the block on the screen self.rect = self.rect.clamp(SCREENRECT) + def grab(self, pos): + x, y = pos; + print x , y + print self.rect.left, self.rect.top + #self.rect = self.rect.move(x, y) + self.rect.left = x-32 + self.rect.top = y-32 + self.rect = self.rect.clamp(SCREENRECT) class Puzzle: def __init__(self): @@ -153,12 +172,16 @@ class Game: gtk.main_iteration() # Pump PyGame messages. - for event in pygame.event.get(): - if event.type == QUIT or \ - (event.type == KEYDOWN and event.key == K_ESCAPE): + for e in event.get(): + if e.type == QUIT or \ + (e.type == KEYDOWN and e.key == K_ESCAPE): return - elif event.type == pygame.VIDEORESIZE: - pygame.display.set_mode(event.size, pygame.RESIZABLE) + elif e.type == pygame.VIDEORESIZE: + pygame.display.set_mode(e.size, pygame.RESIZABLE) + if e.type == MOUSEBUTTONDOWN: + event.set_grab(1) + elif e.type == MOUSEBUTTONUP: + event.set_grab(0) # get the state of the keyboard for input keystate = pygame.key.get_pressed() @@ -177,6 +200,13 @@ class Game: aBlock.move(2) if keystate[K_LEFT]: aBlock.move(3) + + #for block in blocks: + x, y = mouse.get_pos() + #blockx, blocky = block.rect + if event.get_grab(): + if aBlock.rect.collidepoint(x,y): + aBlock.grab(mouse.get_pos()) # note random here is random.random() # note foreach here is for object in @@ -211,7 +241,7 @@ class mouseUpdate(pygame.sprite.Sprite): self.rect = self.image.get_rect().move(50, 220) def update(self): - msg = '' # 'Mouse Position %s, %s' % mouse.get_pos() + msg = 'Mouse Position %s, %s' % mouse.get_pos() self.image = self.font.render(msg, 0, self.color) # This function is called when the game is run directly from the command line: -- cgit v0.9.1