0

私はサイトに不慣れで、2D 環境での衝突の概念を理解するのに問題があるため、アカウントを作成することにしました。

私が持っているのは、トップダウンの観点から見た道路スプライトのセットです。プレイヤーが道路から外れるとゲームオーバーになるように、それらとの衝突のルールを設定しようとしています。

ここまでで、直線道路のルールを設定しました。これを以下に示します。

if ((*it)->getType() == ST_RoadStraight)
    {
        Road* road = (Road*)*it;
        // Check to see if the road sprite is within 16 pixels of the bucket either way
        int dx = road->getPosition().x - Pos.x;
        if (dx < 0) dx = -dx;
        if (dx > 200)
        {
            outOfBounds = true;
        }
    }

基本的に、プレイヤーが x 軸のどちらかの方向に一定の距離を移動すると、ゲームが終了すると言います。i を y 軸に変更できるので、上下または左右に移動する直線道路では問題ありませんが、曲線道路もあります。アセットの概要は次のとおりです。

ストレート: http://i.imgur.com/bNHYwZO.png

湾曲: http://i.imgur.com/ppPw7ED.png

基本的には、プレーヤーが道路を下ったり、許される場所を横切ったりできるようにする必要がありますが、道路から外れる端にぶつかった場合は、そう言う必要があります。これは直線道路では簡単ですが、プレーヤーが曲がった道路のどこにいるかによって、たとえば Y 軸の高さが 30 ピクセルの場合、道路のある部分では問題なく、別の部分では問題になる場合があります。

基本的に、これをゲームで正確に表現できるような方程式を探しています。

どんな助けでも大歓迎です。

4

2 に答える 2

0

Sprite Kitを使用できない理由はありますか?

于 2013-09-29T18:43:24.970 に答える