この問題を解決するためにJavaScriptを使用することは避けたいと言って、この質問の前置きをさせてください。可能であれば(そうではないかもしれませんが)、この「ロジック」をすべてCSSに保持したいと思います。
私はjavascriptで楽しむためのボードゲーム( Khet )を作成しています。ボードピースは、次のような複数の状態を持つことができます。
- 色(どのプレイヤーが作品を所有しているか)
- どんな種類の作品(ピラミッド、スフィンクス、空白のタイルなど)
- ピースが向いている方向(ピースは回転したり移動したりできます)
- 作品がレーザーを反射している場合
- 部品がレーザーによって損傷した場合
そうは言っても、sprite.png
すべてのピースの可能なすべての組み合わせを含む1つのファイルがあり、CSSクラスを使用してピースを状態間で移動できるようにしたいと思います。
たとえば、赤いプレーヤーがボード上にピラミッドピースを持っていて、それが北東を向いていると想像してください。このピースには、、、、およびのクラスが.red
あり.pyramid
ます.northeast
。ピースがレーザーに当たって反射した場合、私がしなければならないのは.laser
、ピースにクラスを追加することだけです。CSSbackground-position
クラスが開始され、適切なイメージを持つようにピースが変更されます。
これはいくつかの質問につながります:
- これは純粋なCSSでも可能ですか?
sprite.png
これらのbackground-position
クラスが機能するように、画像をどのように配置しますか?- クラスはどのようになりますか(これはおそらく#2に依存します)?
- 画像を分解する必要がありますか?すべての赤い部分を1つ
sprite_red.png
に、青い部分を1つに配置するのが好きsprite_blue.png
ですか?
ゲームの他の部分のいくつかに取り組んでいる間、私はこれをバックバーナーに置きました。どんな助けでもいただければ幸いです!