HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0127
EXVDISHのフルカラーモードで特定のキャラだけ一瞬白くしたい3解決


EXV

リンク

2019/1/27(Sun) 09:24:40|NO.86407

こんにちは。
DISHでシューティングゲームを作っています。
DISHのフルカラーモードで特定のキャラだけ一瞬白くしたいです。
自弾1発では死なない敵のボス(体力100とか)に
自弾が当たったらダメージを与えたことがわかるように
一瞬白く発光させたいのですが、どうプログラムを書いていいのか
良いのかわかりません。

パレットモードだったらボスで使われている色を事前に全部保存しておいて、
自弾が当たったときにボスで使われている色を一瞬だけ全部白色にして、
その後に元に戻せばいいと思うのですが、
DISHのフルカラーモードだとどうやっていいのか良くわかりません。

あらかじめ色が真っ白の画像を用意しておくのは
ボスは大きいサイズのため、実用的でないと思うし、
フルカラーモードだとパレットモードは使えないし、行き詰ってます。

そもそもフルカラーモードで特定のキャラだけ一瞬白くするには
どうしたらいいのかで悩んでいます。ネットで調べてもどうしてもわからず、
ネットを読んでいたらどうやらら加算合成を使えば実現できそうな気がしてきましたが、
実際にどうプログラムを記述していいのかが良くわかりません。

シューティングゲームはアルファチャンネル有効のgmode 2で作っているので、
gmodeの種類を途中で変えるとおかしくなってしまう気もしますし、
どう記述すればDISHのgmode 2のままのフルカラーモードで
周りのキャラの色には影響を与えず特定のキャラだけ
一瞬白くできるのかがわかる方がいましたら教えてください。



この記事に返信する


f(缶詰中)

リンク

2019/1/27(Sun) 09:57:30|NO.86408

…白くした画像付けときゃ悩まなくて良いんじゃね?



あり

リンク

2019/1/27(Sun) 13:42:42|NO.86409

単一画像を白く表示させるには色反転コピーを使う方法がありますが
HSPのgmodeには色反転モードがないので素直に白い画像を用意するか
別の方法でダメージエフェクトを表現するしかないと思います。

一応gmode 5で画像を重ねて表示することで輝度を上げることは出来ますが
白に近づけるためには何回も重ねなければならずゲームに使うには実用的でないでしょう。
(ちなみにgmodeの変更後に元のモードに戻すのを忘れなければ表示がおかしくなることはありません)

他の方法例としてhspdishに追加されたgmulcolor命令を使うと画像の色あいを変化させられるので
白一色は無理でも赤色等に染めることでダメージエフェクトとして使うことは可能だと思います。

// HSPDISH用サンプル改造 #include "hsp3dish.as" tamas=ginfo_newid celload dir_tv+"tamane_s.png",tamas celdiv tamas,256,512 *main redraw 0 color 0,160,160 : boxf color 255,255 pos 220,48 : mes "original" pos 64,64 : mes "gmode 5x2" pos 352,64 : mes "gmulcolor" gmode 2,,,255 pos 116,108 celput tamas,i gmulcolor 255,0,0 pos 264,128 celput tamas,i gmode 2,,,255 gmulcolor 255,255,255 pos -32,128 celput tamas,i repeat 2 gmode 5,,,255 pos -32,128 celput tamas,i loop redraw 1 await 16 goto *main



EXV

リンク

2019/1/28(Mon) 01:02:19|NO.86411

ありさん、サンプルプログラムまで作って教えて頂きありがとうございました!
勉強になりました!



ONION software Copyright 1997-2023(c) All rights reserved.