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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0819
色変えHSPDXでes_palsetを使ってキャラクターの服の色を変えたい8解決


色変え

リンク

2008/8/19(Tue) 02:04:41|NO.18427

HSPDX.DLLを使ってキャラクターの服の色だけを変えたいのですが
es_palsetで指定しても色が変わりません。
bufferをbuffer1,,,1とやったら、何だか画像が古い写真の様になってしまいました。
どの様にすれば服の色だけ変えられるのでしょうか。
HSPDX.DLLの初期化は上手く行っていて、キャラクターはちゃんと動きます。



この記事に返信する


やみねこ

リンク

2008/8/19(Tue) 07:56:26|NO.18432

画像か、プログラムの何処かがパレット対応していない可能性はありませんか?

パレットモードは、256色のパレットを使用しています。
画像も対応している必要があります。
画像処理ソフトや、ビューアーで変換してもだめでしょうか?

(ちなみに256色しか使えないので、複数の画像で違うパレットを使ってしまうと色化けしますが)

そういえば、画面モードも対応してる必要があったような…



名無し

リンク

2008/8/19(Tue) 11:57:15|NO.18442

フルスクリーンモードにしても駄目ですか?



色変え

リンク

2008/8/19(Tue) 12:13:17|NO.18445

やみねこさん、名無しさん
回答どうもありがとうございます。

先程から色々試しています。
フルスクリーンにしたら画像が壊れて表示されました。
フルスクリーンもそうですが、ウィンドウモードでも
服の色変えをしたいです。

ESCを押しても抜けられなかったのでソースを変えました。

ゲーム内で使用している画像は256色のビットマップです。
下記に提示したソースが使っているビットマップは235色ですが。
将来的にはウィンドウ、フルスクリーンの切り替えが出来て
画像は235色にしたいと思っています。


#include"hsp3util.as" #include"hspdx.as" wx=640:wy=480 es_ini:es_screen wx,wy,8,,1 if stat=1 : goto *dderr1 if stat=2 : goto *dderr2 goto *start *dderr1:dialog "DirectXの初期化に失敗しました",1:end *dderr2:dialog "スクリーンの初期化に失敗しました",1:end *start:gsel 0:es_cls:es_sync:wait 0 buffer 1,640,480 bmppalette"sample\\hspdx\\hspdx.bmp" picload"sample\\hspdx\\hspdx.bmp" es_buffer 1 es_palset 121,255,0,0 *main_loop gsel 0 es_cls stick mov if mov&128:goto *owari gmode 2 es_copy 1,0,0,640,480 //FPSを測る部分 es_sync 16 fps=stat es_getfps fps await goto *main_loop *owari es_bye end

分からない所だけ抜き出して作って見ました。
hsp3フォルダ直下に入れて実行して見て下さい。

HSPDXを使わない方は上手く動作したのですが何故でしょう。
分かる方いらっしゃいましたらアドバイスお願いします。



やみねこ

リンク

2008/8/19(Tue) 20:07:55|NO.18463

HSP3.1に付属のサンプルビューワーで、
HSPDXのTEST3が、パレットフェードのサンプルのようだったので、
試してみましたが… ちゃんと動きませんね…

ちなみに、うちのパソコンはパレットのモードがありません。
なので、基本的にパレットは動かないのかもしれない…
なんて思いました。



あり

リンク

2008/8/21(Thu) 19:35:13|NO.18596

es_screen wx,wy,8,,1 を es_screen wx,wy,8,,0 にして
buffer 1,640,480 を buffer 1,640,480,1 にしたら
私の環境では正常に動作しました。
Direct3Dでは使えません。

ウィンドウモードではどうもハードが対応していないと
パレットは上手く動かないようですので
パレットを使うならフルスクリーンを前提としておいたほうが
良いと思われます。

ついでにやみねこさんの
>HSP3.1に付属のサンプルビューワーで、
>HSPDXのTEST3が、パレットフェードのサンプルのようだったので、
>試してみましたが… ちゃんと動きませんね…
も es_screen 640,480,8,,0,0 と表記すればちゃんと動きました。
一度試してみて下さい。

これで動かないのなら多分ハードとOSが悪いってことで(汗)



色変え

リンク

2008/8/22(Fri) 19:09:35|NO.18628

ありさんの言う通りにして見たら、背景が赤くなりました!
ありさん、皆さんどうもありがとうございました。

パレットを使うならフルスクリーンで、なんですね。
ウィンドウとフルスクリーンをチェンジする仕様で
パレットが使えないとなると、HSPDXでのキャラの色変えは
それぞれの色のキャラクター画像を用意するって言う方法しか無いんでしょうかね。
画像作るのが一番早いので直に色変えはまた別の機会に行いたいと思います。



あり

リンク

2008/8/23(Sat) 11:14:51|NO.18659

一応HSPのバッファでパレット変更してからes_bufferで転送すると
ウィンドウモードでもパレットの変更が使えるようです。

#include "hspdx.as" onexit *owari es_ini es_screen 640,480,8,0,1,0 buffer 1,640,480,1 palette 1,255,0,0,1 palcolor 1 boxf es_buffer 1,640,480 es_sync await *main gsel 0 es_cls stick key if key&128 :goto *owari if key&16 {gsel 1 :redraw 0 r=rnd(255) g=rnd(255) b=rnd(255) palette 1,r,g,b,1 es_buffer 1 } gsel 0 gmode 2 pos 0,0 es_copy 1,0,0,640,480 es_mes "スペースでパレット変更   ESCで終了" es_sync 16 await goto *main stop *owari es_bye end
ですがリアルタイムでの使用には向きませんし
環境によっては確実に動くという保障も出来ないので
やはりフルスクリーン前提の方が無難ではないかと思います。



やみねこ

リンク

2008/8/24(Sun) 23:35:52|NO.18676

>ありさん

>HSP3.1に付属のサンプルビューワーで、
>HSPDXのTEST3が、パレットフェードのサンプルのようだったので、
>試してみましたが… ちゃんと動きませんね…

うちでも動きました。 ^^
ウインドウモードは、保証されてないんですね。
なんかすっきりしました。



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