2011-12-06 6 views
1

私はSDLでボードゲームを構築しており、現在私が直面している問題があります。SDLを使用したボードゲーム

私は正方形1にポーンを持っており、私はサイコロを振っています。値に基づいて、私はサイコロが別の正方形に移動するサイコロを取得します。 SDLのチュートリアルをオンラインで読んだ後、私はポーンを動かすことができません。しかし、私が直面している問題は、ポーンを新しい場所に移動した後、古いポーンはまだ古い場所にとどまっていることです。私がインターネット上で見つけたチュートリアルはドットを動かすだけでなく、古いドットを隠すためにバックグラウンドをリフレッシュします。しかし、私はゲーム盤が複雑で、そこに座っている他のプレイヤーからの駒があるので、それはできません。

新しい場所に新しいポーンを作成して古いポーンを隠さずに、本当にポーンを動かすことができる方法はありますか?

答えて

3

スプライトの基本概念:スプライトを挿入する前に、元の画面コンテンツのコピーを保存します。スプライトを削除する必要がある場合は、保存した古いコンテンツを貼り付けてください。

すべてのオブジェクトを正しい順序(LIFO)で処理する必要があります。通常はダブルバッファーになるので、これはコールドバッファーで起こるので、これは問題ではありません。

1

いいえ、あなたのコードでは、ポーンが欠落しているボードの位置を再描画できる必要があります。コンピュータがポーンなしでボードの外観を自動的に再構成する方法はありません。

1

ゲームロジックにレンダリングコードが混入しているようです。単一の関数呼び出しで完全なゲームシーンを再描画できるようにレンダリングを分離する必要があります。この関数呼び出しは、ゲームの状態が目に見えるように変更されたときに使用できます。

+0

これはSDLを使った私の最初のプロジェクトなので、私はそのように考えたことはありませんでした。レンダリングを修正するにはあまり先に進んでしまったので、古いポーン位置を正方形で覆い、新しい場所に新しいポーンを作成する予定です。 –

関連する問題