标签分组与collide_other方法进行碰撞检测

如本文章标有价格,需议价或其它事情商议请加微信pythonxia

"""
   利用标签分组与collide_others方法
   本程序运行后能用上下左右键操作虫子,碰到其它虫子时不会穿越过去。
"""

from sprites import *

screen = Screen()
screen.bgcolor('dodger blue')
screen.title('请用awsd键操作虫子')

sq = Sprite()
sq.color('red')

p1 = Sprite(5)
p1.goto(100,100)

p2 = Sprite(6)
p2.goto(-100,100)

p3 = Sprite(8)
p3.goto(-100,-100)

p4 = Sprite(9)
p4.goto(100,-100)

akey = Key('a')       # 实例化a键
dkey = Key('d')       # 实例化d键
wkey = Key('w')       # 实例化w键  
skey = Key('s')       # 实例化s键
screen.listen()
clock = Clock()

while 1:
  # 如果按了a键,则dx为-5,虫子将向左移动  
  if akey.down():dx = -5;dy=0
  elif dkey.down():dx = 5;dy=0
  elif wkey.down():dy = 5;dx=0
  elif skey.down():dy = -5;dx=0
  else:
    dx = 0;dy = 0
    
  sq.move(dx,dy)      # 在水平和垂直方向上移动虫子
  
  # 和tag标签为sprite的精灵进行碰撞检测
  collide_list = sq.collide_others('sprite')
  
  if collide_list:
    if dx != 0: sq.addx(-dx)   # 如果往左右移动
    if dy != 0: sq.addy(-dy)   # 如果往上下移动    
    
  clock.tick(60)      # 设定fps为60


本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 标签分组与collide_other方法进行碰撞检测
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页