NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类

NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类

NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类by lixingqiu李兴球

NPC多造型角色模拟状态机时走时停的增强型AnimatedSprite类by lixingqiu李兴球
小人儿时走时停的。一切都由程序控制。它没有自己的思想。下面是部分代码预览:

"""
 
   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资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。