超级玛丽上下左右矩形碰撞测试程序

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

李兴球Python的游戏海龟gameturtle模块上下左右矩形碰撞检测
"""
   超级玛丽上下左右矩形碰撞检测程序.py
   本程序需要gameturtle模块0.2版支持。
"""
from gameturtle import *

class Key:
    def __init__(self,cv,key):
        self._canvas = cv
        self._key = key
        self._down = False
        self._canvas.bind("" % key,self._press)        
        self._canvas.bind("" % key,self._release)
        
    def _press(self,event):
        self._down = True

    def _release(self,event):
        self._down = False

    def isdown(self):
      return self._down
    
root = Tk()
cv = Canvas(width=480,height=360)
cv.pack()

# 加载资源
mario_pics = ['bgs/mariox.png','bgs/mario2x.png']
mario_pics = [Image.open(im) for im in mario_pics]

# 生成玛丽奥
mario = GameTurtle(cv,mario_pics,pos=(40,40))
mario.dy = 0

square1 = GameTurtle(cv,Image.new("RGBA",(240,120),color='red'))

up_key = Key(cv,"Up")
down_key = Key(cv,"Down")
right_key = Key(cv,"Right")
left_key = Key(cv,"Left")

cv.focus_force()

while True:
    if right_key.isdown() and not mario.right_collide(square1):mario.addx(2)
    if left_key.isdown() and not mario.left_collide(square1):mario.addx(-2)
    if up_key.isdown() and not mario.top_collide(square1):mario.addy(-2)
    if down_key.isdown() and not mario.bottom_collide(square1):mario.addy(2)
    if mario.left_collide(square1):root.title('左碰')
    if mario.right_collide(square1):root.title('右碰')
    if mario.top_collide(square1):root.title('上碰')
    if mario.bottom_collide(square1):root.title('下碰')    
   
    cv.update()
    time.sleep(0.01)

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

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

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