抓球 :创建一个游戏,在屏幕底端放置一个玩家可左右移动的角色。

抓球 :创建一个游戏,在屏幕底端放置一个玩家可左右移动的角色。让一个球出现在屏幕顶端 且水平位置是随机的,并让这个球以固定的速度往下落。如果角色与球发生碰撞(表示将球抓住了),

就让球消失。每当角色抓住球或球因抵达屏幕底端而消失后,都创建一个新球。
import pygame
import sys
from pygame.sprite import Sprite
from pygame.sprite import Group
from random import randint

class Ball(Sprite):
def init(self,screen):
super().init()
self.screen = screen
self.image = pygame.image.load(“images/ball.bmp”)
self.rect = self.image.get_rect()
self.number_random = randint(10,600)
self.rect.x = self.rect.width + self.number_random
self.drop_speed = 1
def update(self):
self.rect.y += self.drop_speed
def blitme(self):
self.screen.blit(self.image,self.rect)

class Woman(Sprite):
def init(self,screen):
super().init()
self.screen = screen
self.image = pygame.image.load(“images/woman.bmp”)
self.rect = self.image.get_rect()
self.rect.centerx = self.screen.get_rect().centerx
self.rect.bottom = self.screen.get_rect().bottom
self.moving_right = False
self.moving_left = False
self.center = float(self.rect.centerx)

def update(self):
    if self.moving_left and self.rect.left > 0:
        self.center -= 50
    if self.moving_right and self.rect.right < 1200:
        self.center += 50
    self.rect.centerx = self.center
def blitme(self):
    self.screen.blit(self.image,self.rect)

def check_keydown(event,woman):
if event.key == pygame.K_RIGHT:
woman.moving_right = True
elif event.key == pygame.K_LEFT:
woman.moving_left = True

def check_keyup(event,woman):
“”“响应松开”""
if event.key == pygame.K_RIGHT:
woman.moving_right = False
elif event.key == pygame.K_LEFT:
woman.moving_left = False

def create_ball(balls,screen):
if len(balls) == 0:
b = Ball(screen)
balls.add(b)
else:
pass

def update_ball(balls,womans):
for ball in balls:
balls.update()
if ball.rect.y >= 800:
balls.remove(ball)
collisions = pygame.sprite.groupcollide(balls,womans,True,True)

def show_ball():
pygame.init()
screen = pygame.display.set_mode((1200,800))
womans = Group()
balls = Group()
pygame.display.set_caption(“Catch the ball!”)
while True:
screen.fill((230,230,230))
if len(womans) == 0:
womans.add(Woman(screen))
for woman in womans:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
check_keydown(event,woman)
elif event.type == pygame.KEYUP:
check_keyup(event,woman)
woman.update()
womans.draw(screen)
create_ball(balls,screen)
update_ball(balls,womans)
balls.draw(screen)
pygame.display.flip()

show_ball()


版权声明:本文为wangcan51原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。