dequantianhe 发表于 2020-5-19 20:59:35

用pygame定义的精灵类移动图片为何这个结果?

先看结果:


大家应该看明白了吧,被移动的图片拖拖拖的很长了

再来看看代码。

pygame.init()

myscreen = pygame.display.set_mode((800,600))

class horse(pygame.sprite.Sprite):
        def __init__(self):
                pygame.sprite.Sprite.__init__(self)
                self.image = pygame.image.load("girl.png")#被移动的图片
                self.rect = self.image.get_rect()
                self.rect.left = 8
                self.rect.top = 10
                speed =
                self.speed = speed
        def move(self):
                self.rect = self.rect.move(self.speed)

bgimage = pygame.image.load("girl.jpg")#背景图片

bgposition = bgimage.get_rect()

myscreen.blit(bgimage,bgposition)

horse1 = horse()

horseposition = horse1.rect

while True:
        for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        exit()
        myscreen.blit(horse1.image,horseposition)
        horse1.move()
        horseposition = horse1.rect
        pygame.display.update()
        #pygame.time.Clock().tick(3)

塔利班 发表于 2020-5-19 20:59:36

要循环里画个背景

wuqramy 发表于 2020-5-19 21:10:01

想实现什么效果呢

dequantianhe 发表于 2020-5-19 21:15:56

wuqramy 发表于 2020-5-19 21:10
想实现什么效果呢

就被移动的图片正常右移啊,显然图片里的结果不是我要的,拖出来的痕迹把背景图片都覆盖了。

wuqramy 发表于 2020-5-19 21:25:56

dequantianhe 发表于 2020-5-19 21:15
就被移动的图片正常右移啊,显然图片里的结果不是我要的,拖出来的痕迹把背景图片都覆盖了。

这样试试
import pygame
from sys import *
pygame.init()

myscreen = pygame.display.set_mode((800,600))

class horse(pygame.sprite.Sprite):
      def __init__(self):
                pygame.sprite.Sprite.__init__(self)
                self.image = pygame.image.load("girl.png")#被移动的图片
                self.rect = self.image.get_rect()
                self.rect.left = 8
                self.rect.top = 10
                speed =
                self.speed = speed
      def move(self):
                self.rect = self.rect.move(self.speed)

bgimage = pygame.image.load("girl.png")#背景图片

bgposition = bgimage.get_rect()

myscreen.blit(bgimage,bgposition)

horse1 = horse()

horseposition = horse1.rect

while True:
      for event in pygame.event.get():
                if event.type == pygame.QUIT:
                        exit()
      myscreen.blit(bgimage,bgposition)
      myscreen.blit(horse1.image,horseposition)
      horse1.move()
      horseposition = horse1.rect
      pygame.display.flip()
      pygame.time.Clock().tick(3)
页: [1]
查看完整版本: 用pygame定义的精灵类移动图片为何这个结果?