HSP - Hot Soup Processor [5]
>>949 よくあるなのは loop から gosub などで飛び、うまく戻れてない場合に起きますね
空回りってやつだ、慣れるまでは どこで何をしているのかを わかり易く組んだほうが楽ヨ
>>950 こんなエラーメッセージがあったらオモロイネ
screen 0,400,300:dialog "「ヴァカなコード書いてんじゃねぇよ、低脳」"
やる気が出ていいかも
>>955 それはコイツだろ!
779 名前:にんにん[sage] 投稿日:04/02/29 13:06
うわあああああああああああああああああああああああああああああああああああああああああああああ線g組むそうでムカついてコントローラーで液晶テレビ激はああああああああああああああああああああああああああ
781 名前:にんにん[sage] 投稿日:04/02/29 13:08
せっかくの12万円のテレビがああああああああアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアア
863 名前:にんにん[sage] 投稿日:04/02/29 13:37
ttp://big.freett.com/nonotehe/tv.JPG パンチ3発で死んだ悲惨なカスTV
buttonだけがHSPの中で例外的にイベントドリブンだからね…
ボタンを押してラベルにジャンプするタイミングがawait/wait/stopの時だってことを
ドキュメントに明記して欲しいな。そうじゃないとHSPやり始めの人はawait/waitの使いどころが
わかんないだろうし。というか、それを知ってる人って案外少なかったりしない?
958 :
Aの人:04/03/04 21:21 ID:YUVPaGxF
ExForceのシェア版使ってる人っていますか?
いたら感想キボン
変な質問かもしれませんがすみません
モジュール命令・・・って、ありますよね。
あれって、モジュールに入る前の変数などは、引き継がせることはできないのでしょうか。
やはり、bsaveなどを使わなければいけないのでしょうか。
>>959 #module "sage"
#deffunc func1
print a@
a = "test2"
return
#global
a = "test"
func1
print a@sage
stop
グローバル変数名の最後に@を付ければモジュール内からでもアクセスできる。
逆にモジュール外でもローカル変数名@モジュール名とすることでモジュール内の変数にアクセス可能
>>960 ありがとうございます
某所でアクションを作ろうとしているものです。
これからも質問するかもしれませんのでよろしくお願いします。
cnt て何ですか?
定数かもしれない
#undef cnt
#define cnt 0
repeat 10
mes cnt
loop
stop
HSPではcntは結構特殊な使い方をする。
ただの変数としても使えるけどな。
詳しくは命令リファレンスでもみろや。
>>968 命令リファレンスを読めるだけの知能があるかどうかチェックするために
垂れ餡がしかけたブービートラップということでFA?
昔のCPUにはレジスタごとに役割があったのさ。
そこからきてたりして。
>>957様
某所でアクションRPGを製作しようと企んでいる者です
buttonの飛ぶタイミングをご伝授していただき誠にありがとうございます
このスレで初めて有益な知識を得たように思います
同じくドキュメントに記載してないとHPSの存在意義が
うすれちゃう
>HPSの存在意義
H S P !
>>973 972の投稿を終えた瞬間なにか違和感を感じた
うすれちゃう ×
うすれちゃうの ○
今日の作業中、マップチップ表示はスプライト機能を
使おうと思った。
975 :
名前は開発中のものです。:04/03/06 01:35 ID:lr/N86BU
次スレは980が立ててね。
#include "hspdxa.as"
es_ini
es_screen 640,480, 16
buffer 2
picload "walksample4.bmp"
efx_buffer 0
efx_size 72,96
;efxパターンとアニメーションの設定
efx_pat 0, 0,0, 8 : efx_pat 1, 0,96, 8
efx_link 1, 0
;スプライトを定義
efx_set 1, 120,120, 0
repeat
es_sync : await 0
es_cls
es_draw
getkey a, 27 : if a = 1 : end
loop
ちょっと質問していいですか?hspda+αを使おうと思いましてサンプル改造して上のスクリプト試したんですけど
画像がうまく表示されないんですよ。使ってるbmp画像は576×1248でVixで256色に落としてます。
使ってるパソコンには一応、Radeon9600積んでるんですけど。hspdxならちゃんと表示されるんですけどね・・。
どなたか分かる方いませんでしょうか?
>>976 walksample4.bmpのサイズはどうなってる?
buffer 2 , (2の乗数) , (2の乗数)
picload "walksample4.bmp" , 1
でやってみ。
yのサイズは2の乗数じゃなくてもいいかも。
>976
現象とスクリプトから推測するに
576×1248の画像サイズに合わせた
バッファなんか作るからぐちゃぐちゃになる。
説明書に書いてある通りバッファサイズは2の累乗の正方形に汁。
だが2048×2048のバッファ作るのは強引すぎるので
素直に画像サイズを512×512や1024×1024辺りに変更汁。
979 :
977:04/03/07 04:51 ID:4/tcCoC4
あら、画像のサイズ書いてあったのね。見落としてた。
この大きさならバッファのサイズより
978の書いてるように画像のサイズ変えたほうがよさげだな。
980 :
976:04/03/07 09:31 ID:O0aVYJQP
>>977-979 ありがとうございます。画像のサイズを変えて試してみたいと思います。
αブレンド使いたいんで、何とかhspda+α使える様に努力します。
980取ってしまったんだが、ISPがぷららなんで新スレ立てられない・・。
すまんが誰かよろしく。
最近、HSP始めた者なんだが、初歩の初歩のキャラを動かす場面で
screen 0,640,480,4,20,20
buffer 2 : picload"jiki.bmp"
jx=320 : jy=400
*main
repeat
redraw 0
gosub *jiki
await 1
redraw 1
loop
自機が伸びるようになるのを防ぎたいんだけど、入れると画面が真っ黒なだけに
なるんだが、入れる場所間違ってる?
redraw 0 のすぐ後に、screen 0,640,480,4,20,20 : color 0,0,0 : boxf て
入れると動く描写はされるんだけど、ちらつく。
どなたか教えて下さい。
この場合、redraw 0 の後にcolor 0,0,0:boxf入れるんだよね?
982 :
980:04/03/07 10:13 ID:yOzi1OZK
>>981 redraw 0でウィンドウの再描画を抑制
移動させるオブジェクトを消去(背景固定の場合) or 背景再描画(背景そのものが動いている場合)
オブジェクトを描画
redraw 1でウィンドウを再描画させる
ウェイト
あと、
・await 1なんてやると他のアプリの動作に支障が出るからやめれ。
・グラフィック周りの命令は速度が遅いので描画範囲は最小限に。
・screenはウィンドウの初期化なので初期化以外に使うな。
clsはウィンドウ上のコントロールも破棄するのでコントロールを破棄する必要がない限り使うな。
画面消去だけならboxfでやれ。
984 :
981:04/03/07 11:18 ID:PlwGrgjC
ありがとう。やっぱりそういうのあるんですね。
*MAIN
repeat
redraw 0
color 0,0,0 : boxf
gosub *jiki
wait 5
redraw 1
loop
こんな感じにしてみたけど、画面が真っ黒になるだけなんです。
上から順に読んでいくので、これで間違ってないですよね?
boxf にして関して、何か注意することとかありますか?
例えば、命令的には間違ってないけど、こういう使い方すると動作
しなくなるとか、なにかあったらよろしくお願いします。
>>984 *jiki も書かないと誰も答えられないと思うぞ。
まあ、恐らく単純にバッファからgcopyしてるだけだろうが…
boxf を引数省略して使うと、画面全体を塗りつぶすっていう意味なのは知ってるよな?
キャラクター画像のサイズが 4の倍数×4の倍数 になってるかもチェック。
>>984 おかしいのはサブルーチン *jiki だと思われ。
boxfは画面全体ではなく
boxf jx , jy , jx+xsize-1 , jy+ysize-1
って感じに必要な部分だけ塗りつぶしたほうがいい。
あと、どんなゲーム目指してるかかわからんが、wait 5はやりすぎ。
理論上はawait 16ぐらいで60FPSになる。
HSPの標準描画は遅いので60FPS出ないだろうけど。
>>984 redraw 0
wait 5
redraw 1
↑だとウェイト中にWindows側の再描画イベント(WM_PAINT)が来たら画面が変になるぞ
988 :
981:04/03/07 13:07 ID:PlwGrgjC
screen 0,640,480,4,20,20
buffer 2 : picload"jiki1.bmp"
jx=320 : jy=240
*main
repeat
redraw 0
color 0,0,0 : boxf
gosub *jiki
await 3
redraw 1
loop
*jiki
gosub *jikimove
gsel 0,1
pos jx,jy
gcopy 2,0,0,64,64
return
*jikimove
stick key,15
if key=1 : jx=jx-3
if key=2 : jy=jy-3
if key=4 : jx=jx+3
if key=8 : jy=jy+3
if key=3 : jx=jx-3 : jy=jy-3
if key=6 : jx=jx+3 : jy=jy-3
if key=9 : jx=jx-3 : jy=jy+3
if key=12 : jx=jx+3 : jy=jy+3
return
とりあえずシューティングゲームから作ろうと思って、まずキャラを動かし
たいんです。それで、redraw 0 の下にscreenとboxf入れればちゃんと動く
動作はするんですけど、ちらつきがあって、boxfだけだとキャラがでないんです
screen 0,640,480,4,20,20
buffer 2 : picload "sample1.bmp"
jx=320 : jy=240
gsel 0
*main
repeat
redraw 0
color 0,0,0 : boxf
gosub *jiki
redraw 1
await 15
loop
*jiki
gosub *jikimove
pos jx,jy
gcopy 2,0,0,120,120
return
*jikimove
stick key,15
if key=1 : jx=jx-3
if key=2 : jy=jy-3
if key=4 : jx=jx+3
if key=8 : jy=jy+3
if key=3 : jx=jx-3 : jy=jy-3
if key=6 : jx=jx+3 : jy=jy-3
if key=9 : jx=jx-3 : jy=jy+3
if key=12 : jx=jx+3 : jy=jy+3
return
HSP2.6の標準命令で登録されたスプライトを回転させるには
どのような方法がありますでしょうか?
リファレンスには載っていませんでした。
自分でスクリプトを組む以外の方法はありますでしょうか?
☆ チン マチクタビレタ~
マチクタビレタ~
☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 次スレまだ~?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
992 :
981:04/03/07 15:40 ID:PlwGrgjC
何度もありがとうございます。
ちゃんと動くようになりました。この場合だとgselの場所が悪かったと言うこと
なんですかね?
書く場所までは詳しく載ってなかったりするので助かりました。ほんとにありがとう。
埋め
995 :
Age.P.Hukai ◆hsp/8n/.as :04/03/07 21:36 ID:95KEsBTX
埋
ま
り
ま
す
せん
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。