![]()
小人儿时走时停的。一切都由程序控制。它没有自己的思想。下面是部分代码预览:
"""
NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类。
本程序模拟了状态机,会演示一个小人物走来走去,它碰到屏幕边缘会反弹。
并且角色在走的过程中可能停下来。为了增强代码可读性,
本程序角色所有造型共享一个矩形对象,不再设置矩形对象列表。
"""
import time
import pygame
from pygame.locals import *
from random import randint
class AnimatedSprite(pygame.sprite.Sprite):
def __init__(self,images,pos,screen):
"""
images:帧序列,pos:坐标,screen:所在屏幕
"""
pygame.sprite.Sprite.__init__(self)
self.sw = screen.get_width()
self.sh = screen.get_height()
self.amounts = len(images) # 造型数量
self.right_frames = images
..........................
def main():
background = "stripes.png"
width,height = 480,360
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption("NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类")
background = pygame.image.load(background)
images = [f"pico/right_{i}.png" for i in range(4)]
images = [pygame.image.load(im) for im in images]
.................................................
running = True
while running:
for event in pygame.event.get():
if event.type == QUIT:running=False
group.update()
screen.blit(background,(0,0))
group.draw(screen)
pygame.display.update()
pygame.quit()
if __name__ == "__main__":
main()
如需要查看完整源代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
