前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pygame 笔记-2 模仿超级玛丽的弹跳

pygame 笔记-2 模仿超级玛丽的弹跳

作者头像
菩提树下的杨过
发布2018-12-25 15:46:40
7580
发布2018-12-25 15:46:40
举报

在上一节的基础上,结合高中物理中的匀加速直线运动位移公式

,就能做出类似超级玛丽的弹跳效果。

代码语言:javascript
复制
import pygame

pygame.init()

win = pygame.display.set_mode((200, 400))  # 画布窗口的大小
pygame.display.set_caption("first game")  # 窗口标题

x, y = 85, 300  # 方块的起点
width, height = 30, 30  # 方块的宽,高
speed = 5  # 速度

run = True
isJump = False
t = 10

while run:
    # 防止cpu占用过高
    pygame.time.delay(10)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    # 方向箭头响应
    if not (isJump):
        if keys[pygame.K_LEFT] and x > 0:
            x -= speed

        if keys[pygame.K_RIGHT] and x < win.get_size()[0] - width:
            x += speed

        if keys[pygame.K_UP] and y > 0:
            y -= speed

        if keys[pygame.K_DOWN] and y < win.get_size()[1] - height:
            y += speed

        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if t >= -10:
            a = 1  # 前半段减速上跳
            if t < 0:
                a = -1  # 后半段加速下落
            y -= 0.5 * a * (t ** 2)  # 匀加速直线运动的位移公式

            if y < 0:
                y = 0  # 防止跳出边界
            t -= 1
        else:
            isJump = False
            t = 10

    # 将每一帧的底色先填充成黑色
    win.fill((0, 0, 0))
    # 画方块
    pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
    # 更新画布
    pygame.display.update()

pygame.quit()

效果:

参考:

https://www.youtube.com/watch?v=2-DNswzCkqk

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档