37,721
社区成员
发帖
与我相关
我的任务
分享
import pygame
from random import choice
from settings import Settings
class Ball():
def __init__(self, screen):
ai_settings = Settings()
self.screen = screen
self.image = pygame.image.load('images/ball.png')
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
self.rect.centerx = self.screen_rect.centerx
self.rect.centery = self.screen_rect.centery
self.x_values = [ai_settings.screen_width/2]
self.y_values = [ai_settings.screen_height/2]
def blitme(self):
self.screen.blit(self.image, self.rect)
def fill_walk(self):
x_direction = choice([1, -1])
x_distance = choice([30, 40])
x_step = x_direction * x_distance
y_direction = choice([-1, 1])
y_distance = choice([ 30, 40])
y_step = y_direction * y_distance
next_x = self.x_values[-1] + x_step
next_y = self.y_values[-1] + y_step
self.x_values.append(next_x)
self.y_values.append(next_y)
def update(self):
self.rect.centerx = self.x_values[-1]
self.rect.centery = self.x_values[-1]
import pygame
import sys
from settings import Settings
from ball import Ball
import game_functions as gf
class MovingBall():
def run_game(self):
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width,
ai_settings.screen_height))
pygame.display.set_caption("Moving Ball")
ball = Ball(screen)
while True:
gf.check_events()
ball.fill_walk()
ball.update()
gf.update_screen(ai_settings, screen, ball)
moving_ball = MovingBall()
moving_ball.run_game()
import sys
import pygame
def check_events():
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
def update_screen(ai_settings, screen, ball):
screen.fill(ai_settings.bg_color)
ball.blitme()
pygame.display.flip()
class Settings():
def __init__(self):
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (80, 166, 209)