「ロープを切る」のようなロープ

有名なベストセラー「Cut the Rope」 作成者とのインタビューを読んだ後、彼らはロープの作成に最も時間を費やしたと主張しましたが、「重いスレッド移動アルゴリズム」の作成は本当に難しいとは思いませんでした。物理エンジンを作成します。 グーグル、私はすぐに答えが見つからなかったので、 cocos2D + Box2Dで自分に似たようなことをしようとすることにしました
ルールは基礎として採用されました。
  1. チェーンは、Revolute Jointsで接続された長方形のボディを使用する方が適切です。
  2. チェーンを構成するオブジェクトが重いほど、より安定しています。
  3. ステップごとの反復回数-より良い(3で十分でした);
  4. チェーンのすべての部分が、回転ジョイントに加えて、距離ジョイントで接続されている場合に役立ちます。


その結果、物理世界のオブジェクトのチェーンを取得しました。結果は次の図とビデオで見ることができます。
画像


したがって、Box2Dで重いスレッドを作成することは難しくありませんでした。
グラフィック部分を説明するために残っています。 もちろん、これは、2次ベジェ曲線によって助けられるべきです。そのアルゴリズムは、cocos2DのDrawingPrimitivesで既に実装されています。
曲線を描くためのポイントを見つけるには、私が行った回転ジョイントの接続ポイントを使用できます。 しかし、行われた作業の結果は非常に動揺し、ひどいピクセレーションが発生しました。これは次のグラフィック素材ではっきりと見えます。
画像


残念ながら、OpenGL ES 2.0をサポートせずにcocos2Dでアンチエイリアシングを使用することは不可能であるため(客観的な理由からサポート付きで使用したくありませんでした)、この方法を使用して不快な影響を排除しました。
その結果、私は完全に満足しました。さらに、私のロープと「Cut the Rope」の違いを長い間研究した後、私はこれに気づきませんでした。 結果は次のとおりです。
画像


したがって、「重いスレッド移動アルゴリズム」を開発するのに14時間もかかりませんでした。
アンチエイリアス線を描画するためのコードが添付されています。
ccDrawingPrimitives.zip

ここここで使用します

Source: https://habr.com/ru/post/J135338/


All Articles