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 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图