我正在写一个简单的“游戏”,我有三个问题要问你:
我不知道该怎么做。你能帮我么。
我的代码:
import pygame
import sys
from pygame.locals import *
import random
pygame.init()
width = 800
height = 600
fps = 25
clock = pygame.time.Clock()
black = (0, 0, 0)
white = (255, 255, 255)
display_window = pygame.display.set_mode((width, height))
pygame.display.set_caption('Bouncy')
game_over = False
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
x_cor = random.randint(15, width - 15)
y_cor = random.randint(15, height - 15)
x_change = random.randint(3, 7)
y_change = random.randint(3, 7)
coordinates = []
for i in range(10):
x = random.randint(0, width)
y = random.randint(0, height)
coordinates.append([x, y])
while not game_over:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
if event.type == pygame.mouse.get_pressed():
pass
x_cor += x_change
y_cor += y_change
display_window.fill(white)
mouse_x, mouse_y = pygame.mouse.get_pos()
for coordinate in coordinates:
pygame.draw.circle(display_window, (r, g, b), (coordinate[0], coordinate[1]), 15, 0)
pygame.draw.circle(display_window, black, (mouse_x, mouse_y), 25, 0)
pygame.draw.circle(display_window, (r, g, b), (x_cor, y_cor), 15, 0)
if x_cor > (width - 15) or x_cor < 15:
x_change = x_change * -1
if y_cor > (height - 15)or y_cor < 15:
y_change = y_change * -1
clock.tick(fps)
pygame.display.update()
答案 0 :(得分:2)
首先,在您发布此处之前需要进行研究(请参阅介绍之旅中的帮助文档)。互联网上有许多教程,许多人在SO(StackOverflow)中回答了处理移动对象的问题。为了让您开始一般:
通过为每个球保持一组单独的坐标来独立移动球。在游戏时钟的每次迭代中,你必须重复每个球的新坐标。
要让球停留在一个地方,只需不要更改其坐标。
要更改球的大小,请用更大的半径绘制球。这意味着你还必须记住每个球的半径。为了给它一个10秒的寿命,为每个球保持“寿命”;在游戏时钟的每个刻度上递减它。
基本上,你需要一个 Ball 对象(制作一个Ball类);为你需要的每个球实例化一个新对象。写出改变每个球的位置,大小和寿命的方法。