Animation 弹跳卡算法
你在纸牌游戏中看到的“弹跳牌”的好算法是什么 你见过的最酷的卡片动画是什么Animation 弹跳卡算法,animation,Animation,你在纸牌游戏中看到的“弹跳牌”的好算法是什么 你见过的最酷的卡片动画是什么 编辑-除了Windows游戏之外还有其他游戏吗?x轴速度是恒定的。y速度每帧增加一个值。在每一帧中,当前的x和y位置将以各自的速度递增。如果卡最终位于窗口下方,则y速度乘以-0.9。(负数>-1)这会产生一系列下降反弹。两部分: 垂直方向的运动是 由二阶方程控制, 类似于d=1/2at²。对于地球 当然,a=32英尺/秒²但是 你得摆弄一下桌子 常数 当卡片碰到边缘时,如 “递归”说,速度 向量乘以-1乘以 垂直于曲面的
编辑-除了Windows游戏之外还有其他游戏吗?x轴速度是恒定的。y速度每帧增加一个值。在每一帧中,当前的x和y位置将以各自的速度递增。如果卡最终位于窗口下方,则y速度乘以-0.9。(负数>-1)这会产生一系列下降反弹。两部分:
只要卡片与侧面保持四方形,那么当卡片中心与墙壁之间的距离为宽度或高度的1/2时,就会与侧面发生碰撞。在与Charlie提供的代码斗争了一个小时左右后,我想出了正确的算法(彻底阅读了recursive的响应). 在真正的Python中:
def bouncing_cards():
x = 0.0
y = 0.0
vel_x = 3.0
vel_y = 4.0
while x < windowWidth:
drawImage(img, x, y)
x += vel_x
y += vel_y
vel_y += 1.0
if y + cardHeight >= windowHeight:
y = windowHeight - cardHeight
vel_y *= -0.9
def弹跳卡():
x=0.0
y=0.0
水平x=3.0
水平y=4.0
当x=窗高:
y=窗高-卡高
水平y*=-0.9
使用wxPython给出以下内容::)但存在一些“重力”,否则不会减慢速度IIRC,纸牌动画会在纸牌路径上的所有位置显示纸牌,因此您必须修改此算法以记住它所处的所有位置,并适当地绘制它们。或者只是不清除帧之间的帧缓冲区(我怀疑这是原始纸牌所做的)重力:y速度每帧增加一个值。重力是每帧增加的y速度。使它变慢的部分是-0.9乘数,它在每次卡反弹时引入10%的垂直速度损失。
def bouncing_cards():
x = 0.0
y = 0.0
vel_x = 3.0
vel_y = 4.0
while x < windowWidth:
drawImage(img, x, y)
x += vel_x
y += vel_y
vel_y += 1.0
if y + cardHeight >= windowHeight:
y = windowHeight - cardHeight
vel_y *= -0.9