python少儿编程课程-第18课:动画精灵_第1页
python少儿编程课程-第18课:动画精灵_第2页
python少儿编程课程-第18课:动画精灵_第3页
python少儿编程课程-第18课:动画精灵_第4页
python少儿编程课程-第18课:动画精灵_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sprite动画精灵——碰撞侦测同学们思考一下碰撞侦测应该如何实现?请先参考pygame文档上一章我们学会了动画精灵的创建、移动以及屏幕反弹,但是精灵与精灵之间却没有发生任何关系。让精灵与精灵之间发生一些联系,这就是碰撞侦测。pygame.sprite.spritecollide(sprite,group,dokill,collided=None)参数1:精灵对象参数2:精灵组,包含所有的精灵参数3:是否删除组中所有碰撞的精灵参数4:设置一个回调函数,用于定制特殊的检测方法。如果该参数忽略,那么默认是检测精灵之间的rect是否产生重叠。首先同学们在敲代码之前,先将代码进行一下整理,整理好了之后,我们在重新创建一个碰撞的方法,不过要注意这个方法不在类里面,而是在主函数中重新定义的。要注意,先将自己从组中排除,等碰撞之后在将自己添加进组里面,就像我们玩斗地主一样,当自己赢了的时候那自己就是地主,不在农民里面;当自己输了的时候自己就是农民。Sprite动画精灵——碰撞侦测defcollide_demo():forballinballs:balls.remove(ball)#首先把自己排除ifpygame.sprite.spritecollide(ball,balls,False):ball.speed[0]=-ball.speed[0]ball.speed[1]=-ball.speed[1]balls.add(ball)在碰撞的过程中,会出现“颤抖”的情况,并且会出现两次碰撞这是什么原因呢?当你运行的时候你发现什么问题了吗?Sprite动画精灵——碰撞侦测大家还记得我们上一章所将的移动是怎样完成的吧?上一章移动碰撞forballinballs:ball.move()screen.blit(ball.image,ball.rect)pygame.display.flip()#显示ygame中所有的内容defcollide_demo(sprite_group):screen.fill([120,230,20])forballinsprite_group:

ball.move()pygame.time.delay(10)screen.blit(ball.image,ball.rect)sprite_group.remove(ball)#首先把自己排除ifpygame.sprite.spritecollide(ball,balls,False):ball.speed[0]=-ball.speed[0]ball.speed[1]=-ball.speed[1]sprite_group.add(ball)pygame.display.flip()#显示pygame中所有的内容VS更换成泡泡之后你会发现,效果更佳哦!你能综合以上所学的知识将乒乓球更换为,一下四种不同颜色的泡泡?Sprite动画精灵——碰撞侦测Pygame整理总结通过这两章课程内容的学习,你都学会了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论