Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcoolestdude1 <arielzamparini@gmail.com>2010-02-18 10:02:40 (GMT)
committer coolestdude1 <arielzamparini@gmail.com>2010-02-18 10:02:40 (GMT)
commitfddec5fb8eabe6fb44940bada6b590e472ff3c34 (patch)
tree5f12f88f955e2cd90ceebe480ebd553e7ece3901
parenteabcf89c6e117781d6e834a9dbeae7102e1ca953 (diff)
added in box mouse tracking and fixed events
-rw-r--r--blocku.py48
1 files changed, 39 insertions, 9 deletions
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: