前半 ; 重力を考慮した状態で硬いバネを複数繋ぎ、ヒモの動きを再現する ※位置と速度の更新方法が、ここまでのサンプルと変わっています #define N 20 ; 制御点の数 #define L 10.0 ; 制御点を繋ぐバネの長さ #define G 1.0 ; 重力 #define R 0.98 ; 速度に掛けるダンパー値 #define K 1.0 ; ばね定数 ; データ領域の確保 (x,y = 現在の座標、ox,oy = 移動元の座標、vx,vy = 速度) ddim x, N : ddim y, N : ddim ox, N : ddim oy, N : ddim vx, N : ddim vy, N *MAIN stick bt, 256 : if bt & 128 : end ; 移動元の座標を保存 repeat N ; 地面と接触していたら速度を減らす(摩擦) if y(cnt) >= 460 : vx(cnt) *= 0.8 ox(cnt) = x(cnt) : x(cnt) = limitf(x(cnt) + vx(cnt), 20, 620) oy(cnt) = y(cnt) : y(cnt) = limitf(y(cnt) + vy(cnt), 20, 460) y(cnt) += G ; 重力を加える loop