python制作动画为什么不动武,为什么我的左右移动动画不起作用?

classPlayer(pygame.sprite.Sprite):""" This class represents the character you play as """def__init__(self,x,y):""" Constructor function """# Call the parent's constructorsuper().__init__()self.change_x=0self.change_y=0self.walking_frames_l=[]self.walking_frames_r=[]self.walking_frames_u=[]self.walking_frames_d=[]self.direction="R"sprite_sheet=SpriteSheet("character.png")image=sprite_sheet.get_image(1,6,15,22)self.walking_frames_d.append(image)image=sprite_sheet.get_image(17,6,15,22)self.walking_frames_d.append(image)image=sprite_sheet.get_image(33,6,15,22)self.walking_frames_d.append(image)image=sprite_sheet.get_image(49,6,15,22)self.walking_frames_d.append(image)image=sprite_sheet.get_image(0,69,15,23)self.walking_frames_u.append(image)image=sprite_sheet.get_image(16,69,15,23)self.walking_frames_u.append(image)image=sprite_sheet.get_image(32,69,15,23)self.walking_frames_u.append(image)image=sprite_sheet.get_image(48,69,15,23)self.walking_frames_u.append(image)image=sprite_sheet.get_image(2,38,13,22)self.walking_frames_r.append(image)image=sprite_sheet.get_image(18,38,13,22)self.walking_frames_r.append(image)image=sprite_sheet.get_image(34,38,13,22)self.walking_frames_r.append(image)image=sprite_sheet.get_image(50,38,13,22)self.walking_frames_r.append(image)image=sprite_sheet.get_image(1,102,13,22)self.walking_frames_l.append(image)image=sprite_sheet.get_image(17,102,13,22)self.walking_frames_l.append(image)image=sprite_sheet.get_image(33,102,13,22)self.walking_frames_l.append(image)image=sprite_sheet.get_image(49,102,13,22)self.walking_frames_l.append(image)self.image=self.walking_frames_r[0]self.rect=self.image.get_rect()self.rect.y=y

self.rect.x=xdefmove(self,walls):""" Moves player """# Move left/rightself.change_x=0pos=self.rect.x

keystate=pygame.key.get_pressed()ifkeystate[pygame.K_a]:self.change_x=-8self.direction="L"ifkeystate[pygame.K_d]:self.change_x=8self.direction="R"self.rect.x+=self.change_xifself.direction=="R":frame=(pos//30)%len(self.walking_frames_r)self.image=self.walking_frames_r[frame]else:frame=(pos//30)%len(self.walking_frames_l)self.image=self.walking_frames_l[frame]# Did this update cause us to hit a wall?block_hit_list=pygame.sprite.spritecollide(self,walls,False)forblockinblock_hit_list:# If we are moving right, set our right side to the left side of# the item we hitifself.change_x>0:self.rect.right=block.rect.leftelse:# Otherwise if we are moving left, do the opposite.self.rect.left=block.rect.right# Move up/downself.change_y=0pos=self.rect.y

keystate=pygame.key.get_pressed()ifkeystate[pygame.K_w]:self.change_y=-8self.direction="U"ifkeystate[pygame.K_s]:self.change_y=8self.direction="D"self.rect.y+=self.change_yifself.direction=="D":frame=(pos//30)%len(self.walking_frames_d)self.image=self.walking_frames_d[frame]else:frame=(pos//30)%len(self.walking_frames_u)self.image=self.walking_frames_u[frame]# Check and see if we hit anythingblock_hit_list=pygame.sprite.spritecollide(self,walls,False)forblockinblock_hit_list:# Reset our position based on the top/bottom of the object.ifself.change_y>0:self.rect.bottom=block.rect.topelse:self.rect.top=block.rect.bottom

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值