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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0304
tko連続です7解決


tko

リンク

2010/3/4(Thu) 20:00:36|NO.30974

こういう画像変化のスクリプトを
書いたんですがちょっと
一つ一つ画像を読み込む方式なので
ぱらぱら漫画風になるのですが一つしか
読み込みません
一つのbmpに2二列分の画像を入れているのですが
連続で横に移動しませんどうしたらよろしいでしょうか?
指示お願いします

//画像サイズの定義
#const PIC_X 376
#const PIC_Y 162

//ファイル名の準備
//画像保管場所のディレクトリ設定。御自分の環境に合わせて
#define PICTURE_PATH "c:\\Documents and settings\\聖也\\デスクトップ\\hsp321rc2\\hsp321\\sample\\game\\"
sdim NORMAL_PICTURE, 512
sdim LEFT_PICTURE, 512
sdim UP_PICTURE, 512
sdim RIGHT_PICTURE, 512
sdim DOWN_PICTURE, 512
//各向きの画像ファイル名
NORMAL_PICTURE = PICTURE_PATH + "1.bmp"
LEFT_PICTURE = PICTURE_PATH + "ライト1.bmp"
UP_PICTURE = PICTURE_PATH + "UP1.bmp"
RIGHT_PICTURE = PICTURE_PATH + "レフト1.bmp"
DOWN_PICTURE = PICTURE_PATH + "DOWN1.bmp"

//ウィンドウIDの割り当て
#enum SCREEN_DRAW = 0
#enum BUFFER_NORMAL
#enum BUFFER_LEFT
#enum BUFFER_UP
#enum BUFFER_RIGHT
#enum BUFFER_DOWN

//各ウィンドウ/バッファ準備
screen SCREEN_DRAW,PIC_X+100,PIC_Y+100,0
buffer BUFFER_NORMAL,PIC_X,PIC_Y,0
buffer BUFFER_LEFT,PIC_X,PIC_Y,0
buffer BUFFER_UP,PIC_X,PIC_Y,0
buffer BUFFER_RIGHT,PIC_X,PIC_Y,0
buffer BUFFER_DOWN,PIC_X,PIC_Y,0

//バッファヘ画像データ読み込み
gsel BUFFER_NORMAL
picload NORMAL_PICTURE
gsel BUFFER_LEFT
picload LEFT_PICTURE
gsel BUFFER_UP
picload UP_PICTURE
gsel BUFFER_RIGHT
picload RIGHT_PICTURE
gsel BUFFER_DOWN
picload DOWN_PICTURE

gsel SCREEN_DRAW

//キーボードイベント取得開始
onkey gosub *keyhandle
//待ちループ
repeat
wait(100)
loop

stop


//キーボードハンドラ
*keyhandle
//キーリピートの時は何もしない
if lparam & 0x40000000 {
return
}
//以前の動きと反対、あるいは矢印以外のキーはセンター状態にする
curPos= BUFFER_NORMAL
//キーによって画像元ID選択
switch wparam
case 37 //left
if lastPos != 39 : curPos = BUFFER_LEFT
swbreak
case 38 //up
if lastPos != 40 : curPos = BUFFER_UP
swbreak
case 39 //right
if lastPos != 37 : curPos = BUFFER_RIGHT
swbreak
case 40 //down
if lastPos != 38 : curPos = BUFFER_DOWN
swbreak
swend
//画像表示
pos 50,50
gcopy curPos,0,0,PIC_X,PIC_Y
lastPos=wparam
return



この記事に返信する


hatter

リンク

2010/3/4(Thu) 20:40:58|NO.30975

僕の頭が悪いせいなのでしょうけど、質問の意味がわかりません。

> こういう画像変化のスクリプトを
> 書いたんですがちょっと
スクリプトは半角の<pre>〜</pre>で囲んでください。
こういう画像変化のスクリプトとといわれましても
どういう画像を扱っているのか分からないので、ねらいが分からない。
>一つ一つ画像を読み込む方式なので
画像を読み込む?表示をするのではなくて?
>ぱらぱら漫画風になるのですが一つしか
ぱらぱら漫画風?どんなんやねん。

>読み込みません
>一つのbmpに2二列分の画像を入れているのですが
へ?意味が分かりません。bmpの中身がよくわからん。
スクリプト上でひとつの画像として処理してるし。
>連続で横に移動しませんどうしたらよろしいでしょうか?
連続で?それはキー操作をしてということですか?
>指示お願いします
どうでもいいことですが、各ウィンドウ/バッファ準備とバッファヘ画像データ読み込みを同時にやったら
無駄なgselが省けるのでは?

画像ファイル上に横に連続したコマが入っているなら。(う〜ん、上手く表現できない。)

P_FILE="onibtn.gif" ;画像ファイルのパス P_SPLIT=4 ;画像分割数 buffer 2:picload "onibtn.gif";FILE P_X=ginfo_sx:P_Y=ginfo_sy screen 0,P_X/P_SPLIT,P_Y repeat P_SPLIT pos 0,0:gcopy 2,P_X/4*cnt,0 wait 50 loop
こんな感じにするとパラパラ漫画風にはなる。



Ve

リンク

2010/3/4(Thu) 20:46:09|NO.30976

スクリプトは <pre>〜</pre>で囲んでください。



tko

リンク

2010/3/4(Thu) 20:55:24|NO.30978

自分で何とかします



Ve

リンク

2010/3/4(Thu) 20:55:29|NO.30979

先に書かれてもうた。

>一つのbmpに2二列分の画像を入れているのですが
>連続で横に移動しませんどうしたらよろしいでしょうか?

ちなみに僕も頭が悪いせいなのでしょうけど、質問の意味がわかりません。

質問のキモになっている画像がどうなっているのかも、
スクリプトだけじゃ分かりません。

あと、バッファ作る時はサイズ指定しているのに、
picloadのロードモードで初期化になっています。



晩御飯

リンク

2010/3/4(Thu) 21:22:41|NO.30981

本名か知らないけど名前は伏せといた方がいいんでない



tko

リンク

2010/3/4(Thu) 21:53:24|NO.30986

ミスっちゃいました(^^;)>
気にしないでください
恥ずかしいです



ANTARES

リンク

2010/3/5(Fri) 00:26:57|NO.31000

>一つしか読み込みません
 一つしか読み込まないのではなく、スクリプトが1つしか使ってないだけです。

>二列分の画像を入れているのですが連続で横に移動しません
 各画像の横幅がPIC_X*2で、2パターンアニメをやりたいと解釈しましたが、
どのような条件でアニメさせるのかが不明なので
同じキーを何度も押すとアニメすることにしました。

#if 0 gcopy curPos,0,0,PIC_X,PIC_Y #else if lastCurPos==curPos { beginx=PIC_X-beginx } gcopy curPos,beginx,0,PIC_X,PIC_Y lastCurPos=curPos #endif



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