–-coding:cp936--importsys,pygamefrompygame.localsimport*fromrandomimportrandrangeclassweight(pygame.sprite.Sprite):def__init__(self):pygame.sprite.Sprite.init(self…
–– coding: cp936 ––
import sys,pygame
from pygame.locals import *
from random import randrange
class weight(pygame.sprite.Sprite):
def init(self):
pygame.sprite.Sprite.init(self)
self.image=weight_image
self.rect=self.image.get_rect()
self.reset()
def reset(self):
“””
把秤砣移动到屏幕顶端的随机位置。
“””
self.rect.top = -self.rect.height【①这句是什么意思?】
self.rect.centerx = randrange(screen_size[0])【②这句是什么意思?】
def update(self):
“””
更新秤砣,显示下一帧
“””
self.rect.top += 1【③这句是什么意思?】
if self.rect.top > screen_size[1]:【④这句是什么意思?】
self.reset()
初始化
pygame.init()
screen_size=800,600
pygame.display.set_mode(screen_size)
pygame.mouse.set_visible(0)
载入秤砣的图像
weight_image=pygame.image.load(“weight.png”)
weight_image=weight_image.convert()
创建一个子图形组
sprites=pygame.sprite.RenderPlain()
sprites.add(weight())
获取屏幕表面,并且填充
screen=pygame.display.get_surface()
bg=(255,255,255)
screen.fill(bg)
pygame.display.flip()
用于清除子图形
def clear_callback(surf,rect):
surf.fill(bg,rect)
while True:
for event in pygame.event.get():
if event.type==QUIT:
sys.exit()
if event.type==KEYDOWN and event.key==K_ESCAPE:
sys.exit()
清除前面位置
sprites.clear(screen,clear_callback)
更新所有子图形
sprites.update()
绘制所有子图形
updates=sprites.draw(screen)
更新所需的显示部分
pygame.display.update(updates)
问题我都用【】标记上了,就四句看不懂……
Original: https://blog.csdn.net/weixin_42298062/article/details/111908917
Author: 是你的皮卡丘
Title: centerx python_谁来告诉我python pygame的rect问题
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/783164/
转载文章受原作者版权保护。转载请注明原作者出处!