1.代码
import pygame
from pygame.sprite import Sprite
class Plane:
def __init__(self, screen, setting):
super().__init__()
self.screen = screen
self.setting = setting
self.img_plane = pygame.image.load("./imgs/plane.png")
self.rect = self.img_plane.get_rect() # 得到小飞机的的矩形区域
self.screen_rect = self.screen.get_rect() # 得到screen的矩形区域
# print(self.screen_rect)
self.rect.centerx = self.screen_rect.centerx # 水平居中
self.rect.bottom = self.screen_rect.bottom # 底部
self.center = float(self.rect.centerx)
self.mv_right = False
self.mv_left = False
def update(self):
if self.mv_right and self.rect.right < self.screen_rect.right: # 小飞机的有边框小于整个页面的有边框
self.center += self.setting.plane_speed # settings中的属性
if self.mv_left and self.rect.left > 0: # 小飞机的左边框大于0
self.center -= self.setting.plane_speed
self.rect.centerx = self.center
def blitme(self):
self.screen.blit(self.img_plane, self.rect)
def center_plane(self):
self.center - self.screen_rect.centerx
class Bullet(Sprite): # 继承pygame.sprite中的Sprite类
"""子弹的管理"""
def __init__(self, setting, screen, plane):
super().__init__()
self.screen = screen
# 在(0,0)处创建一个表示子弹的矩形
# pygame.Rect
# 用于存储直角坐标的pygame对象
self.rect = pygame.Rect(0,0, setting.bullet_width, setting.bullet_height)
# 设置显示的位置
self.rect.centerx = plane.rect.centerx
self.rect.top = plane.rect.top
# 让子弹的位置跟小飞机重叠,当子弹飞出了以后,就显得跟从小飞机里面射出来一样
# 将子弹的坐标转换为浮点数
self.y = float(self.rect.y)
# 子弹的颜色
self.color = setting.bullet_color
# 子弹的速度
self.speed = setting.bullet_speed
def update(self):
# 向上移动子弹
self.y -= self.speed
# 根据self.y的值更新self.rect.y
self.rect.y = self.y
def draw_bullet(self):
"""绘制子弹"""
# pygame.draw.rect()画一个矩形的形状
pygame.draw.rect(self.screen, self.color, self.rect)
class Spaceship(Sprite):
def __init__(self, setting, screen):
super().__init__()
self.screen = screen
self.setting = setting
self.img = pygame.image.load("./imgs/enemy.png")
# 获取rect属性
self.rect = self.img.get_rect()
# 每个飞船最初都在屏幕左上角附近
self.rect.x = self.rect.width # 飞船图像的左边距等于图像的宽度
self.rect.y = self.rect.height # 飞船图书的上边距等于图像的高度
self.rect.w = self.rect.width
self.rect.h = int(self.rect.height / 2) # 将高度设置为一半
self.x = float(self.rect.x)
def blitme(self):
self.screen.blit(self.img, self.rect)
def check_edges(self):
screen_rect = self.screen.get_rect()
if self.rect.right >= screen_rect.right:
return True
elif self.rect.left <= 0:
return True
def update(self):
"""移动飞船"""
self.x += (self.setting.spaceship_speed * self.setting.fleet_direction)
self.rect.x = self.x
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。