超级玛丽碰砖块

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

turtle mario jump collision bricks 玛丽的算术之角色类
turtle mario jump collision bricks 玛丽的算术之角色类

操作超级玛丽去碰砖块的一个小游戏。这是一个雏形程序,方便学习。以下是代码预览。

"""
   超级玛丽碰砖块
   本程序定义一个Sprite类。
   操作它能跳跃起来,能左右移动去碰砖块。
"""
from turtle import *
from brick import Brick

class Sprite(Turtle):
    """
      继承自Turtle类的角色类
    """
    def __init__(self,leftpics,rightpics,pos):
        """初始化方法
           leftpics:左序列造型
           rightpics:右序列造型
           pos:初始坐标
        """
        Turtle.__init__(self,visible=False)
        self.penup()
        self.speed(0)
        self.leftpics = leftpics
        self.rightpics = rightpics
        self.images = [leftpics,rightpics]       
        self.shape_index = 0              # 造型序列索引号
        self.shape_amount = len(leftpics) # 向左或向右造型数量
        self.screen.onkeypress(self.leftmove,"Left")
        self.screen.onkeypress(self.rightmove,"Right")
        self.screen.listen()
        self.goto(pos)
        self.shape(self.images[0][0])     # 初始造型
        self.st()
        self.screen.update()
        self.dy = 0                       # 垂直速度
        self.gravity()
        self.screen.onkeypress(self.jump,"Up")
        
    def gravity(self):
        """受重力自由落体运动"""
        y = self.ycor() + self.dy        
        if y > -105:
           self.dy = self.dy -1
        else:
           y = -105
           self.dy = 0
        self.sety(y)
        self.screen.update()
        self.screen.ontimer(self.gravity,10)

    def jump(self):
        """跳跃"""
        if self.dy == 0 : self.dy = 20
        
    def leftmove(self):
        """向左移动"""
        self.setheading(180)       
        self.shape_index +=1                  # 造型索引增1 
        self.shape_index %= self.shape_amount # 对总数求余
        self.shape(self.images[0][self.shape_index])
        self.fd(10)
        self.screen.update()
        
    def rightmove(self):
        """向右移动"""
        self.setheading(0)        
        self.shape_index +=1                  # 造型索引增1 
        self.shape_index %= self.shape_amount # 对总数求余
        self.shape(self.images[1][self.shape_index])
        self.fd(10)
        self.screen.update()

下载完整源代码与素材,请扫码付款。

VIP免费查看

已有0人支付

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

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

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