![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.3ベストアンサー
- 回答日時:
とと・・・なるほど・・・なら再々度回答します。
とはいえ、私個人細かい定義を語るのはちょっと苦手でウソをついている場合もあります。
そこは気をつけてください。すいません。大体こんな感じであると分かっていただければ・・・
Lock() はサーフェスやテクスチャの画像の実データを編集する為に必要なメソッドのことです。
一度ロックすると画像の実データが直接編集可能になります。データは超アバウトにいえば *.bmp
ファイルをヘッダを抜いてバイナリで開いた感じで格納されています。
32Bitデータなら画像左上のドットから右にα(場合によっては未使用)8Bit R 8Bit G 8Bit B 8Bit
で繰り返され、一列終わったら下の列にまた左から右にαRGB・・・の順で格納されているはずです。
で、編集し終わったら UnLock() で終了させます。
データを直接いじることが可能になるメソッドなので用途は広いハズなのですが、このロックは
非常に重いメソッドです。特にビデオメモリにあるデータをロックしようとすると、パフォーマンスが
一気に落ちてしまう可能性があります。特にアクション性の高いゲームで毎ループやれる処理
ではないです。なので、No2で
>あまりリアルタイムにやるのでなければロックして一回で済ませてしまった方がいい
と書いています。リアルタイムで複数のスプライトを、毎ループやる場合は完全に別の方法を考えた方がいいです。
まあ、ゲームの種類や、状況にもよるとは思いますが・・・・
と・・ここまで来て思ったのですが・・・単にヌキ色を指定するだけなら「カラーキー」だけで大丈夫です。
もしかして私が難しい方に考えすぎているかも知れません。参考URLに「カラーキー」のことも書いているので
それで十分だったら、私のほうのミスです。すいません。
補足に関しては、まあテクスチャでも同じようなことは出来るといえば出来ます。
後は状況やその他もろもろに左右されるんで、ココから先はがんばってくださいとしか・・・・・
参考URL:http://www.c3.club.kyutech.ac.jp/~sukiyaki/index …
ありがとうございます。
度々すいませんが、テクスチャーをLockしようとしたのですが、出来なかったので、サーフェスとカラーキーを使ったやり方を詳しく教えて頂けないでしょうか。
No.2
- 回答日時:
No1です。
さすがに簡単に書きすぎましたか。すいません。では、再度回答します。
仮に64*64の一枚の画像がスプライトがあったとして、それを星の形でくりぬきたいとします。
用意する物は白黒で書いた64*64の星の画像です。星の内側を白とし、外側を黒にします。
まず一つは両方を普通にロードした後、両方の画像をロックして1ドットずつ元画像を変えていきます。
白黒の方が黒なら、元画像の同じドットをヌキ色に変更、白ならそのまま。
それを全ドットに対して行ってください。
もう一つ、コレは後で思ったのですが、星画像を元画像にカラーキーを変えて表示させるだけでも
いけますね。星の形に切り抜きたい場合、星画像の白をカラーキーとして元画像の上に表示
そうすると元画像の星型の周りが黒になるはずなので、それからカラーキーを黒に戻して通常画像を表示。
コレはサーフェスなら・・・の話ですけどね。
うーん・・・DirectX8となると、スプライトはテクスチャになるのかな?私個人は画像をロックして加工
してしまう派なので、ロックなしでテクスチャにマスク処理となると、今の時点ではパッとは出てこないですね。
基本はカラーキーの話と一緒の気もしますが・・・あまりリアルタイムにやるのでなければロックして
一回で済ませてしまった方がいいと思います。
コレでどうでしょう?ダメですかね??
この回答への補足
元の画像からピースの形に切り抜いてジグソーパズルを作ろうとしているのですが、その場合サーフェスを使ったやり方のほうが良いのでしょうか。
ちなみに表示はLPDIRECT3DTEXTURE8を使っています。
ありがとうございます。
物凄く基本的な事なのですが、ロックして1ドットずつ元画像を変えていくというのは、どの様にすれば良いのでしょうか。
度々すいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- レトロゲーム ファミコンのインベーダー。なぜ左右に動けるのか? 1 2022/07/05 14:19
- その他(ソフトウェア) ペイントで切り抜いた画像の背景を透明に 2 2022/09/15 10:20
- 飲み物・水・お茶 ウィルキンソンレモンライム炭酸水を甘くしたらスプライトの味になるのでしょうか?スプライトを甘く無くし 3 2022/04/12 07:09
- Excel(エクセル) Excel で分を抜き出すには お世話になります。C列にhh:mmで時間が入っております。このssを 2 2023/03/01 10:50
- Photoshop(フォトショップ) フォトショップで切り抜いた画像を透明にするには 3 2022/09/15 11:50
- C言語・C++・C# 【C++】IDirect3DSurfaceのディープコピーは可能ですか? 1 2022/07/06 02:47
- 英語 ①普通名詞の所有格+②普通名詞で、①普通名詞に定冠詞の意味を付加したい場合の表現方法等について 23 2022/09/30 12:47
- モニター・ディスプレイ 「.cur」のアイコン表示について 4 2023/03/04 10:21
- その他(パソコン・周辺機器) Windowsマシン。USBタップの「自動切れ、再接続」がうざい。解決策は? 7 2023/01/25 08:27
- Windows 10 VirtualBoxで起動できないゲームがあります 2 2022/12/17 06:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
uwcs のマクロで画像認識をして...
-
UWSC「画像が無い場合」
-
UWSCの画像認識と条件分岐につ...
-
UWSC 画像判定と条件分岐について
-
UWSC 画像認識で条件分岐
-
UWSCの色判定
-
HTMLです。画像をHTMLで表した...
-
HTMLでこの画像を表示したいで...
-
VB6での画像のサイズ変更に関して
-
C# 画像のトリミング処理
-
C# Excelのsheetに表示された...
-
DirectX8でのスプライトの切り...
-
背景画像の繰り返しについて
-
秘密分散
-
gif 画像上の ボタンに リン...
-
画像認識アルゴリズムについて
-
スマホでサイトの画像を長押し→...
-
画像認識したい!!!
-
グローバルナビゲーション(カレ...
-
uwsc画像認識のあいまい判定に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
背景画像の繰り返しについて
-
EXCEL VBA 複数のImageコントロ...
-
「using Windows」でエラーが出る
-
jqueryスライダーを2段でスライ...
-
画像のピクセルデータの取得
-
ImageMagickでgif画像の一部が...
-
Excel ユーザーフォームで表示...
-
uwcs のマクロで画像認識をして...
-
uwscの画像認識に失敗します。
-
vb.net 画像の透過について
-
VBA シート毎に画像挿入
-
UWSC 画像判定と条件分岐について
-
UWSC「画像が無い場合」
-
gif 画像上の ボタンに リン...
-
Pythonでgif画像が上手く作れない
-
VBAのユーザーフォームのイメー...
-
UWSC 画像認識で条件分岐
-
パネルに画像
-
【WPF】画像の切り替え
おすすめ情報