[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[pygame] collision
- To: pygame-users@xxxxxxxx
- Subject: [pygame] collision
- From: "federico ramirez" <fedekiller@xxxxxxxxx>
- Date: Sat, 11 Nov 2006 19:07:15 -0300
- Delivered-to: archiver@seul.org
- Delivered-to: pygame-users-outgoing@seul.org
- Delivered-to: pygame-users@seul.org
- Delivery-date: Sat, 11 Nov 2006 17:07:24 -0500
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=jNjaemCaORMmQAT8cuLU/O6Ax7XJ0bBgL3qstxu9Tu5emE9jnCvWfQdrr/lIkfHZbfzuIfi2FLACwJtr1mIp8tcO/85UIH9ztC2N3ZQd+3zzKKPJlR7A4Ije60zPyo1E/yneUZN8pa4XdFY0HwjEAqQDqtWD3I2nAUg8t9VYzG8=
- Reply-to: pygame-users@xxxxxxxx
- Sender: owner-pygame-users@xxxxxxxx
Well im very noob with pygame u.u i need help making a collision
I have 2 sprites, a ball and a bar.
i want to make that the bar has 3 parts, left center and right, if the ball hits one of those parts it will have a different effect.
But i just dont know how to do it xD
Here its what i have
import pygame, os, sys
from pygame.locals import *
def load_image(name, colorkey=None):
fullname = os.path.join('data', name)
try:
image = pygame.image.load(fullname)
except pygame.error, message:
print 'Cannot load image:', name
raise SystemExit, message
image = image.convert()
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0,0))
image.set_colorkey(colorkey, RLEACCEL)
return image, image.get_rect()
def load_sound(name):
class NoneSound:
def play(self):
pass
fullname = os.path.join('data', name)
try:
sound = pygame.mixer.Sound(name)
except pygame.error, message:
print "Cannot load sound: ", wav
raise SystemExit, message
return sound
#Global Variables
width = 640
height = 480
speed = 30
ballspeed = 15
pygame.init() # Starts pygame
pygame.key.set_repeat(1, 1) # Set key repeat rate
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("PyPong")
backround = pygame.Surface([width, height])
backround.fill((0, 0, 0))
screen.blit(backround, (0,0))
class bar(
pygame.sprite.Sprite):
global width, height, screen, black
def __init__(self):
self.x = width/2
self.y = height-20
pygame.sprite.Sprite.__init__(self)
self.bar, self.rect
= load_image('bar.bmp')
self.rect.topleft = (width/2, height-20)
def move(self, event):
if (event == K_RIGHT):
self.rect = self.rect.move(speed, 0)
self.x
+= speed
elif (event == K_LEFT):
self.rect = self.rect.move(-speed, 0)
self.x -= speed
class ball(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init_
_(self)
self.x = width/2
self.y = -130
self.angle = 0
self.score = 0
self.speed = 10
self.ball, self.rect = load_image('ball.bmp', -1)
self.rect.topleft
= (width/2, 5)
def move(self):
if self.y <= height-170:
if self.angle == 0:
self.rect = self.rect.move(0, self.speed)
self.y += self.speed
elif angle == -45:
self.rect = self.rect.move(6, self.speed)
ball.x += 6
self.y += self.speed
elif angle == 45:
self.rect
= self.rect.move(-6, self.speed)
ball.x -= 6
self.y += self.speed
elif COLLISiON!: #need to make collision T_T
self.speed = -self.speed
else:
self.score-=100
bar = bar()
ball = ball()
screen.blit(ball.ball, ball.rect)
screen.blit(bar.bar, bar.rect)
pygame.display.update()
while True:
"""Bar Stuff"""
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN:
bar.move(event.key)
"""Ball Stuff"""
ball.move()
"""Show all and update"""
screen.blit(backround, (0,0))
screen.blit(bar.bar, bar.rect)
screen.blit(ball.ball, ball.rect)
pygame.display.update
()
pygame.time.delay(10)
--
Best Regards.
fedekiller