Python精灵模块_复合造型及其图章与碰撞

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

"""
   复合造型及其图章与碰撞
"""
from sprites import *

width,height = 480,360
screen = Screen()
screen.setup(width,height)
screen.bgpic('res/sky.png')

def display_mouse_x_y(x,y):
    screen.title(str(x) + "," + str(y))
screen.onmousemove(display_mouse_x_y)

s = Shape("compound")                       # 新建复合类型的造型
tx = [(-10,10),(10,10),(20,-10),(-20,-10)]  # 第一个多边形
s.addcomponent(tx, "red", "blue")           # 加到造型里,填充为红边为蓝
sq = [(-10,20),(10,20),(10,10),(-10,10)]    # 第二个造型
s.addcomponent(sq,"blue",'brown')           # 填充为蓝边为棕

screen.addshape('tx',s)                     # 注册到造型字典

s = Sprite(shape='tx',visible=False)        # 角色本身是隐藏的
s.left(90)                                  # 左转90度
i = s.stamp()                               # 盖图章,编号为i

board = Sprite(shape='square')              # 新建一个矩形做为拦板
board.shapesize(0.6,5)                      # 给它变形
board.sety(-140)                            # 设置它的y坐标
dx = 1                                      # 水平速度
dy = 1                                      # 垂直速度
while True:
  board.setx(mouse_pos()[0])
  s.stampmove(i,dx,dy)                      # 水平与垂直方向移动
  if s.stampcollide(i,board,0.5):           # 如果图章i碰到board
     dy = -dy
 
  left,top,right,bottom = s.stampbbox(i)    # 获取绑定盒子
  if left <= -width//2 or right >= width//2:dx = -dx
  if bottom <= -height//2 or top >= height//2:dy = -dy
  s.wait(0.001)          



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

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

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