|
|||
bullet.py. button.pybullet. py
import pygame from pygame. sprite import Sprite
class Bullet(Sprite): " " " A class to manage bullets fired from the ship. " " "
def __init__(self, ai_settings, screen, ship): " " " Create a bullet object, at the ship's current position. " " " super(Bullet, self). __init__() self. screen = screen
# Create bullet rect at (0, 0), then set correct position. self. rect = pygame. Rect(0, 0, ai_settings. bullet_width, ai_settings. bullet_height) self. rect. centerx = ship. rect. centerx self. rect. top = ship. rect. top
# Store a decimal value for the bullet's position. self. y = float(self. rect. y)
self. color = ai_settings. bullet_color self. speed_factor = ai_settings. bullet_speed_factor
def update(self): " " " Move the bullet up the screen. " " " # Update the decimal position of the bullet. self. y -= self. speed_factor # Update the rect position. self. rect. y = self. y
def draw_bullet(self): " " " Draw the bullet to the screen. " " " pygame. draw. rect(self. screen, self. color, self. rect)
******************************************************** button. py
import pygame. font
class Button():
def __init__(self, ai_settings, screen, msg): " " " Initialize button attributes. " " " self. screen = screen self. screen_rect = screen. get_rect()
# Set the dimensions and properties of the button. self. width, self. height = 200, 50 self. button_color = (0, 255, 0) self. text_color = (255, 255, 255) self. font = pygame. font. SysFont(None, 48)
# Build the button's rect object, and center it. self. rect = pygame. Rect(0, 0, self. width, self. height) self. rect. center = self. screen_rect. center
# The button message only needs to be prepped once. self. prep_msg(msg)
def prep_msg(self, msg): " " " Turn msg into a rendered image, and center text on the button. " " " self. msg_image = self. font. render(msg, True, self. text_color, self. button_color) self. msg_image_rect = self. msg_image. get_rect() self. msg_image_rect. center = self. rect. center
def draw_button(self): # Draw blank button, then draw message. self. screen. fill(self. button_color, self. rect) self. screen. blit(self. msg_image, self. msg_image_rect)
*****************************************************************
|
|||
|