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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0504
ついついゲージ表示をスプライトとして使うことは可能?3解決


ついつい

リンク

2014/5/4(Sun) 00:26:55|NO.61824

つい2ヶ月ほど前にHSPをかじり始めました。STGを作ろうと思っています。
良くあるゲージ関連で質問ですが、es_boxfでXやY幅を変数化して可変にしたり、
es_copyでbmp画像からゲージを同じように可変で表示することはできたのですが、

表示位置を動いている敵の位置にあわせたり、ゲージ自体をアニメさせるために、
スプライトで同様のことが出来れば、と思っております。

es_patの読み込み位置を変数化したのでは変更できませんでした。
なにか方法があるのでしょうか?



この記事に返信する


暇人

リンク

2014/5/4(Sun) 00:51:51|NO.61828

サイズ毎にes_setで指定して全パターンを作るとか
Direct3Dを使用する設定にしてるならes_effectで描画時のサイズ指定



暇人

リンク

2014/5/4(Sun) 21:02:06|NO.61840

es_effectを使うならこんな感じ

#include "hspdx.as" wx=640:wy=480 es_ini ; system初期化 es_screen wx,wy,32,,1,1 ; スクリーン初期化 chrsx=64:chrsy=64 ; キャラクタのサイズを指定 buffer 3 picload "testchr.bmp" es_buffer 0,2,,,1 es_size 64,64,60 es_pat 0, 0,64 buffer 2,100,10 es_buffer 1,2,,,1 es_size 100,10,0 es_pat 10, 0,0 //ゲージキャラクタNOを10に設定 es_area -64,-64,wx,wy ; 画面ボーダー設定 gsel 0,1 es_cls es_sync wait 100 repeat 10 gosub *setpat loop *gmain es_cls 50,50,50 stick ky,$1f ; キーの情報を取得 if ky&$e0 : goto *owari ; [ESC]中断チェック repeat kilcnt //削除された分補充 gosub *setpat loop kilcnt=0 no=0 //検索開始ナンバー repeat es_find no,2,no,10 if no<0 {break} hp(no)-rnd(2) if hp(no)<0 { es_kill no es_kill no+100 no++ kilcnt++ continue } es_get spx,no,ESI_POSX_INT es_get spy,no,ESI_POSY_INT es_pos no+100,spx,spy-30 //キャラの座標を基にゲージの座標を設定 hsvcolor hp(no)/2,255,255 es_effect no+100,hp(no),10,,,,ESB_ALPHA,255,ginfo_r<<16 | ginfo_g<<8 | ginfo_b no++ //検索が無限ループしないように次の検索を一つずらす loop es_draw es_sync 15 await 0 goto *gmain *setpat a=rnd(64):spd=rnd(10)*25+100 x=rnd(640):y=rnd(480) es_new no,0 es_set no,x,y,0 es_type no,2 es_adir no,a,spd es_flag no,$6200 hp(no)=rnd(100) es_set no+100,x,y-30,10 //キャラのスプライトナンバーに100足したのをゲージスプライトナンバーで使用 es_flag no+100,$1000 return *owari es_bye end



ついつい

リンク

2014/5/5(Mon) 00:36:12|NO.61845

おお!まさに貼っていただいたソースの動きが理想そのものです!
es_effectはいままで使っていなかったので、今後利用していこうと思います。

ありがとうございました!



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