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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0802
mmmポインタの動き7解決


mmm

リンク

2007/8/2(Thu) 21:57:21|NO.10071

下のスプリクトを実行するとポインタが表示されなくなったり、途中で止まったりします。
何か解決方法はありませんか?
教えて下さい。



buffer 1 picload "ground.bmp" screen 0,1600,1600,2,(ginfo_dispx-640)/2,(ginfo_dispy-480)/2,640,480 dim map,50,50 gmode 2 px=0:py=0 *main redraw 0 color 0,0,0:boxf 0,0,1600,1600 stick ky,15,1 if ky=4&px<50:px+1 if ky=1&px>0:px-1 if ky=8&py<50:py+1 if ky=2&py>0:py-1 x=ginfo(8):y=ginfo(9) if px*32-x>607&x<1600:groll x+32,y if px*32-x<0&x>0:groll x-32,y if py*32-y>458&y<1600:groll x,y+32 if py*32-y<0&y>0:groll x,y-32 x=ginfo(8):y=ginfo(9) repeat 50 rcnt=cnt repeat 50 if map.cnt.rcnt=0:pos cnt*32+16,rcnt*32+16:grotate 1,0,0,0.5*3.14,33,33 loop loop color 0,0,255:boxf px*32,py*32,px*32+31,py*32+31;ポインタ作成 gsel 0,1 redraw 1 wait 1 goto *main



この記事に返信する


GENKI

リンク

2007/8/2(Thu) 23:39:31|NO.10073

矢印キーを2個以上押したときに止まっているようです。
次の場所を書き換えてみてください。

if ky=4&px<50:px+1 if ky=1&px>0:px-1 if ky=8&py<50:py+1 if ky=2&py>0:py-1
これを、

if ((ky&4)=4)&(px<50):px+1 if ((ky=1)=1)&(px>0):px-1 if ((ky=8)=8)&(py<50):py+1 if ((ky=2)=2)&(py>0):py-1
こうする。

ポイントはif文とビット演算の2つ。
if文は条件式の結果が0だと偽とみなし、0以外なら真とみなします。
ビット演算についてはこちらをどうぞ。
http://hspwiki.tm.land.to/?%BE%AE%A5%EF%A5%B6%2F%A5%D3%A5%C3%A5%C8%C1%E0%BA%EE



eller

リンク

2007/8/3(Fri) 05:50:57|NO.10079

こうした書き込みはちょっと気が引けますが、放っとくのも問題なので。
たぶん↓の間違いですよね…?

if ((ky&4)=4)&(px<50):px+1 if ((ky&1)=1)&(px>0):px-1 if ((ky&8)=8)&(py<50):py+1 if ((ky&2)=2)&(py>0):py-1
なおpx+1のような書き方は推奨されていないので、px++またはpx+=1にした方が良いと思います。
ところで、「消える」というのは画面外に出てしまう、ということでしょうか?
それならば↑の条件式にあるpx<50とpy<50を適度に調節すれば解決するはずです。



mmm

リンク

2007/8/3(Fri) 22:03:40|NO.10084

お二人ともありがとうございます。
ところでよくゲームに背景が見えるように四角形を描画しているものがありますが、あれはどうやってするのですか?
教えてください。



eller

リンク

2007/8/3(Fri) 22:41:58|NO.10086

申し訳ありませんが
> ゲームに背景が見えるように四角形を描画
の意味がわかりません。↓のようなものを指していらっしゃるのでしょうか?

http://hsp.tv/play/pforum.php?mode=all&num=9194



mmm

リンク

2007/8/4(Sat) 14:51:22|NO.10098

分かりにくくてすみません。
半透明の四角形を描画ということです。。



eller

リンク

2007/8/4(Sat) 20:43:30|NO.10108

ヘルプブラウザ(スクリプト編集中にF1を押すと出てくるウィンドウ)で「透明 四角形」などで検索してみてください。
いくつかの方法がありますが、どの方法でも複数の命令を組み合わせる必要があります。



mmm

リンク

2007/8/5(Sun) 11:04:54|NO.10127

解決しました。
ありがとうございました。



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