平台跳跃 碰撞检测 与 大/小跳

2025-04-204140
AI 快速预览详细 收起
本文详细介绍了如何通过图形化编程实现平台跳跃游戏中的平滑移动、碰撞检测和大/小跳功能。首先,通过‘如果’语句和变量控制角色的速度,结合摩擦力和重力模拟真实物理效果。接着,通过将移动过程细分为多次微小移动,并结合碰撞检测,确保角色不会卡在墙里。最后,通过设置变量来区分不同的跳跃状态,实现大/小跳功能。
    如今,图形化编程已逐渐流行。可是有许多编程作者面对心中创想仍是“心有余而力不足”。例如网页上经久不衰的‘平台跳跃类’游戏——
无数次的尝试,最终或许只换来一个“鬼畜”而或“卡脚”的小人。


   万事都需要引路人。今天,我将在这个帖子中,‘无微不至’地为各位致上如下图所示的程序中
平台跳跃 碰撞检测 与 大/小跳图1
平台跳跃 碰撞检测 与 大/小跳,的教程。
同时,也宣布一下我的‘暂时’回归。


准备:一台能用的电脑、一个正在读帖子的编程员、编程软件、一个方形角色:平台跳跃 碰撞检测 与 大/小跳图7  (嗯...怎么这么小)




一、移动
  有人也许会问:“移动有什么好讲的啊?”但是,如上图中一般,要想‘丝滑地’移动,
不能只凭一块 移动 积木就完事。还需变量的加减与乘除。(当然如果各位会 就当我没说)


首先,是“打死也不变”的‘如果’语句:
平台跳跃 碰撞检测 与 大/小跳图2
其中,‘speed_x’与跳跃出现的‘speed_y’即为角色在水平和垂直方向上的速度。
上过初二的同学们(没上过也没事)知道:力是改变而不是维持物体运动状态的原因。
所以,就像你坐火车一样,你给角色施加力的时间越长,它‘跑’得越快。
————同时,‘知周所众’物体移动必然也有摩擦力。所以便有了:
平台跳跃 碰撞检测 与 大/小跳图3
速度越快阻力越大,这是生活常识告诉我们的。。。


此外,那位‘苹果树下被苹果砸’的物理学家告诉我们:万有引力。
所以:平台跳跃 碰撞检测 与 大/小跳图4


最后,再进行‘移动’:平台跳跃 碰撞检测 与 大/小跳图5
最简单的一步就完成了!
二、碰撞检测。

    1.先随便画一个地图(横平竖直!不要斜或弯的!)
    (用画长方形的工具画)
平台跳跃 碰撞检测 与 大/小跳图6
然后,新建个函数,勾选‘运行时不刷新’:
平台跳跃 碰撞检测 与 大/小跳图8
将‘将x坐标增加()’和‘将y坐标增加()’积木分别扔里面。再跟我一起做:
平台跳跃 碰撞检测 与 大/小跳图9
过程有点繁琐,简单概括就是:“把移动一次分成许多次,一次移动一点点,碰到‘场景’就‘踩急刹’。”
由于代码问题,角色如果卡在墙里(多半是刚点绿旗时),就像是拉了手刹,动不了一点。所以各位在刚开始时记得给角色设置一个合适的位置哦!


至此,你会得到一个“可以碰壁”但是“会飞”的角色。


2.检测能否跳跃。
    先建立一个变量‘能否跳跃’。然后就是判定“能否跳跃”了。
这里的基础逻辑是:跳跃的条件不止‘按下上键’,还有‘能否跳跃=1’,中间“与”连接。
跳起时将‘能否跳跃’设为0,下落时碰到地板就设为1。如图所示:
平台跳跃 碰撞检测 与 大/小跳图10
自此,祝贺各位,已经能成功让自己的‘小方块’动起来了!!!


三、大、小跳的区分
    这个没什么好说的,就是增加了你在一次‘滞空’中可跳跃的次数,为便于区分
‘在地上’‘在空中(正在长按上键)’‘在空中(松开上键)’三种状态,
我将变量‘能否跳跃’设为1、0、-1三个数来表示,并新设变量‘跳跃次数’
大家自行体会~~
平台跳跃 碰撞检测 与 大/小跳图11


自此,你已完全掌握(这谁知道)如何进行平台跳跃类游戏底层代码的编写。




希望我的帖子对各位编程朋友们有所帮助与启发!致谢!


注:附件中的程序不要解压!!!直接把后缀改成.sb3




附:在今年的青少年的线下编程比赛中,在答辩时,我看到有同学直接使用我之前分享的代码(真的很离谱!)。
         关于此事,我想声明:栎阳安琪 在该论坛上所发表的一切资源,仅限于各位同学学习与引申。不能用于比赛抄袭等不正当的地方!!!






代码.png (550.84 KB, 下载次数: 2072)

代码

平台跳跃 碰撞检测 与 大/小跳 · 图形化编程教程_image_3.webp

平台跳跃2 - 副本.zip

5.77 KB, 下载次数: 4165

不要解压!把后缀改成.sb3

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
栎阳安琪
栎阳安琪
作者
不是,这么优质的教程怎么没人看??!!
Lyper
Lyper
参拜大佬
栎阳安琪
栎阳安琪
作者
有新建议的同学可以留言哦~
- 没有更多了 -