Scratch 运行的帧率是多少?怎么让角色 快速&平滑 的移动?
scratch吧
全部回复
仅看楼主
level 1
112234aaa 楼主
我想做个射击游戏,子弹是克隆体(5px 的圆),出现后,应该 平滑、快速的 向前移动。
但因为子弹是克隆体,实际上我发现,想让子弹快速移动,只能用:
伪代码:(向x 轴正向移动)
**************************
——无限循环:
————子弹 x = x + 10
————移动到(x,y)
****************************
想调整子弹的快慢,我目前只会改变10,比如改慢成 5,或快成 15 等.
但这样,比如子弹每次移 15 px,那中间跳过的 两个子弹大小的空间 里,如果和另一子弹交叉(应该对消掉),就检测不到了。。。造成 bug。
所以,我实际想要的是,每次移动5格,每秒内多移动几次 —— 这就涉及到了运行的帧率。
可我实在没找到,这个参数是怎么在 Scratch 里体现出来的。
有的帖子说,可以用自定义积木,不刷新什么的。但我还是没弄明白,块内不刷新,那什么时候刷新。还是没有这个参数啊。
每条积木执行时间也不知道。
一团乱麻。。。。。。
2021年06月27日 16点06分 1
level 5
帧率30
想要超过速度……turbowrap试一下?
2021年06月28日 04点06分 2
谢谢!
2021年06月29日 03点06分
level 10
sc的最大帧率为30,使用部分修改版可以提升到60或更高。
启用"不刷新画面"的函数内的积木会在1帧内完成运算。以上问题的解决方案就是插值,对于移动n步可以拆分成为:
(在启用不刷新画面的函数内)
重复执行n次:
移动1步
子弹碰撞检测
即可。
2021年06月28日 07点06分 3
请教一下,我的子弹是克隆的,同时存在好多,每个里都有自己的局域变量。这种情况下,还能用自定义积木吗。变量会不会混淆
2021年06月29日 03点06分
自定义积木是相当于一个子函数,可以随意调用的存在吗?
2021年06月29日 03点06分
@112234aaa 其实这个方法仅适用于静对动或动对静。如果是你说的两方动的话算法需要非常复杂(以下内容来自simple617这位大佬:已知动点p,q分别从p1,q1移动到p2,q2,求时间t,令该时刻p,q间距离最小(链接:https://aerfaying.com/Projects/834033)
2021年07月01日 15点07分
@Kilex 我的天,计算量老大了。。谢谢大佬
2021年07月07日 06点07分
level 1
写了一个简单的代码段,希望能够有益于贴主:
2021年07月03日 07点07分 5
收到,谢谢啦!!
2021年07月07日 06点07分
level 1
利用三角函数判断子弹方向是否会与障碍物相交,若该射线于障碍物相交,则移动一段距离之后,直接在大概的位置(最靠近障碍物的位置及min( sqrt ( (x-x0)^2 + (y-y0)^2 ) ) ) 也就是 sqrt ( (x-x0)^2 + (y-y0)^2 ) <= 子弹每帧移动的步数 的时候直接删除克隆体,就可以预判子弹的位置来达到无需检测直接碰撞障碍物删除的目的
2021年07月05日 12点07分 6
障碍物是动的[汗]
2021年07月07日 06点07分
level 1
最硬核的方法就是给它的贴图加一个虚影尾巴,调色板里有一个红斜杠就是透明色
2021年07月09日 05点07分 7
硬核大佬,这招太好使了[大拇指]
2023年02月18日 03点02分
level 9
参数方程你会吗?就是把他们不同时刻的位置用函数表示出来,然后判断是否某一时刻两坐标重合
2021年07月22日 16点07分 8
level 9
不会也没事,你可以把障碍物的轨迹设为分段函数,然后每秒增加1自变量(也可以每0. 1秒加0. 1,越小越精确)。把发射子弹时的时刻保存下来,然后通过时间变化量来表示移动距离(比如3s~5s变化了2s,每秒移动10步,那么运动了20步),最后再判断碰到...
2021年07月22日 16点07分 9
这样是为了统一运动时刻。
2021年07月22日 16点07分
level 1
用叠加重复的代码块来代替循环,比如说每移动一步就判断一次,将这样的代码块复制叠加几次(不用循环),就能使这些操作在一帧内完成(同时也会在一定程度上加大电脑计算量造成卡顿),再套上循环就可行了。虽然这样比较麻烦,但是你又不会自定义代码块,只能这样了。
对了如果你想要使用自定义代码块里的“运行时不刷新画面”(让改自定义代码块的所有代码在一帧内执行),千万不要使用“等待”一类字眼的代码块在里面,比如说等待几秒,广播等待之类的,都不要加,这样程序理解不了你的意思,在运行到这种代码块时会十分卡顿,长时间可能会崩,这样没保存的作品就会丢,得不偿失的。
2023年02月08日 13点02分 10
其实不刷新屏幕的函数里循环次数稍微多点就会卡
2023年02月08日 17点02分
1