1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ximy-alien

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
ship.py 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
zhangjialin Отправлено 03.02.2021 17:05 b31c671
import pygame
from pygame.sprite import Sprite
class Ship(Sprite):
def __init__(self, ai_settings, screen):
"""初始化飞船并设其初始位置"""
super().__init__()
self.screen = screen
self.ai_settings= ai_settings
# 加载飞船图像并获取其外接矩形
self.image = pygame.image.load("images/ship.png")
self.rect = self.image.get_rect()
# 屏幕的外接矩形
self.screen_rect = self.screen.get_rect()
# 飞船的矩形
# 将每艘新飞船放在屏幕底部中央
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
# 在飞船的属性center中存储小数值
self.center = float(self.rect.centerx)
# 移动标志
self.moving_right = False
self.moving_left = False
def blitme(self):
"""在指定位置绘制飞船"""
self.screen.blit(self.image, self.rect)
def update(self):
"""根据移动标志调整飞船的位置"""
if self.moving_right and self.rect.right < self.screen_rect.right:
self.center += self.ai_settings.ship_speed_factor
# 如果使用一个elif代码块来处理向左移动的情况,右箭头键将始终处于优先地位。
if self.moving_left and self.rect.left > 0:
self.center -= self.ai_settings.ship_speed_factor
# 根据self.center更新rect对象,这里为啥要多此一举
# 是因为rect.centerx是整型,而不是浮点型,因为需要一个变量来接收
self.rect.centerx = self.center
def center_ship(self):
"""让飞船在屏幕上居中"""
self.center = self.screen_rect.centerx

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/ximy-alien.git
git@api.gitlife.ru:oschina-mirror/ximy-alien.git
oschina-mirror
ximy-alien
ximy-alien
master