# coding=utf-8
import pygame
import random
class Block(pygame.sprite.Sprite):
def __init__(self, img):
pygame.sprite.Sprite.__init__(self)
self.image = img
self.rect = img.get_rect()
pygame.init()
screen = pygame.display.set_mode((940, 768))
stickimage = pygame.image.load('stick.png')
stick = stickimage.get_rect()
stick.center = (500, 700)
background = pygame.Surface(screen.get_size())
pic = [pygame.image.load("half/brick1.png").convert_alpha(), pygame.image.load("half/brick2.png").convert_alpha(),
pygame.image.load("half/brick3.png").convert_alpha(), pygame.image.load("half/brick4.png").convert_alpha()]
block_list = pygame.sprite.Group()
for j in range(0, 5):
for i in range(0, 6):
block = Block(pic[random.randrange(4)])
block.rect.x = i * 135
block.rect.y = j * 30
block.mask = pygame.mask.from_surface(block.image)
block_list.add(block)
ball_pic = pygame.image.load("ball.png").convert_alpha()
ball = Block(ball_pic)
ball.rect.center = (500, 500)
ball.mask = pygame.mask.from_surface(ball.image)
ball.radius = 23
score = 0
done = True
while done:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 창의 종료버튼이 눌렸을때 게임종료
done = False # false 값을 줌으로서 루프를 빠져나와 게임종료
if event.type == pygame.MOUSEMOTION: # 마우스가 눌렸을때 마우스의 위치 얻음
ball.rect.center = event.pos
break
hit_list = pygame.sprite.spritecollide(ball, block_list, True, pygame.sprite.collide_mask)
for h in hit_list:
score += 1
print(block_list)
block_list.draw(background) # SpriteGroup 에 있는 스프라이트를
# background surface 에 모두 그림
screen.blit(background, (0, 0)) # background 를 screen 에 복사해 줌
screen.blit(ball.image, ball.rect)
screen.blit(stickimage, stick)
pygame.display.flip() # 화면 갱신
import pygame
import random
class Block(pygame.sprite.Sprite):
def __init__(self, img):
pygame.sprite.Sprite.__init__(self)
self.image = img
self.rect = img.get_rect()
pygame.init()
screen = pygame.display.set_mode((940, 768))
stickimage = pygame.image.load('stick.png')
stick = stickimage.get_rect()
stick.center = (500, 700)
background = pygame.Surface(screen.get_size())
pic = [pygame.image.load("half/brick1.png").convert_alpha(), pygame.image.load("half/brick2.png").convert_alpha(),
pygame.image.load("half/brick3.png").convert_alpha(), pygame.image.load("half/brick4.png").convert_alpha()]
block_list = pygame.sprite.Group()
for j in range(0, 5):
for i in range(0, 6):
block = Block(pic[random.randrange(4)])
block.rect.x = i * 135
block.rect.y = j * 30
block.mask = pygame.mask.from_surface(block.image)
block_list.add(block)
ball_pic = pygame.image.load("ball.png").convert_alpha()
ball = Block(ball_pic)
ball.rect.center = (500, 500)
ball.mask = pygame.mask.from_surface(ball.image)
ball.radius = 23
score = 0
done = True
while done:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 창의 종료버튼이 눌렸을때 게임종료
done = False # false 값을 줌으로서 루프를 빠져나와 게임종료
if event.type == pygame.MOUSEMOTION: # 마우스가 눌렸을때 마우스의 위치 얻음
ball.rect.center = event.pos
break
hit_list = pygame.sprite.spritecollide(ball, block_list, True, pygame.sprite.collide_mask)
for h in hit_list:
score += 1
print(block_list)
block_list.draw(background) # SpriteGroup 에 있는 스프라이트를
# background surface 에 모두 그림
screen.blit(background, (0, 0)) # background 를 screen 에 복사해 줌
screen.blit(ball.image, ball.rect)
screen.blit(stickimage, stick)
pygame.display.flip() # 화면 갱신
일단 마우스로 공움직여서 벽돌 제거 되는지 안되는지 체크중인데
print(block_list) 해서 공이 벽돌이랑 부딪힐때마다 block_list 그룹내에 Block 객체 사라지는건 확인했는데
문제는 화면 갱신하면서 벽돌이 안사라짐;; 뭐 따로 처리해야되는거 있음??
들여쓰기좀; - dc App