Python_windy 2019-01-04 23:48 采纳率: 0%
浏览 1176

小白求助pygame中纵向移动

将Xue类中update()方法中self.rect.y += 1 改成下方代码就只会出现一行雪花下落

import pygame
import sys
from xue import Xue

def check_events():
    """检查事件"""
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()


def get_num_x(screen):
    """计算一行放置的雪花个数"""
    xue = Xue(screen)
    space_x = screen.get_rect().width - 2 * xue.rect.width
    num_x = int(space_x / (2 * xue.rect.width))
    return num_x


def get_num_y(screen):
    """
    计算放置雪花的列数
    大概是屏幕的一半
    """
    xue = Xue(screen)
    space_y = (screen.get_rect().height / 2) - (2 * xue.rect.height)
    num_y = int(space_y / (2 * xue.rect.height))
    return num_y


def create_xuehuas(screen, xues):
    """创建一大堆雪花"""
    for n_y in range(get_num_y(screen)):
        for n_x in range(get_num_x(screen)):
            xue = Xue(screen)
            xue.rect.y = xue.rect.height + 2 * xue.rect.height * n_y
            xue.rect.x = xue.rect.width + 2 * xue.rect.width * n_x
            xues.add(xue)


def update_screen(screen, xues):
    """更新屏幕"""
    screen.fill((245, 245, 245))
    xues.draw(screen)
    pygame.display.flip()

```import pygame
from pygame.sprite import Sprite

class Xue(Sprite):
    """关于雪的类"""

    def __init__(self, screen):
        super().__init__()
        self.screen = screen
        self.image = pygame.image.load('xuehua/xh.bmp')
        self.rect = self.image.get_rect()
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        self.y = float(self.rect.y)

    def update(self):
        """向下移动雪花"""
        self.y += 1
        self.rect.y = self.y


```import pygame
import sys
from xue import Xue
from pygame.sprite import Group
import xia_xue as xx

def run_game():
pygame.init()
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("下雪")
xues = Group()
xx.create_xuehuas(screen, xues)
while True:

    xx.check_events()
    xues.update()
    xx.update_screen(screen, xues)

run_game()

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 19:38
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划