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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0414
サトプーキャラが動く機能8解決


サトプー

リンク

2020/4/14(Tue) 20:27:31|NO.90103

初心者です

buffer 1:picload"sample.png"

stick key=1
if key=1{
xx-=5
muki=1
}
if muki=1{
pos xx,yy
color 255,255,255:gmode 4,0,0,256
gsel 0,1
gcopy 1,0,0,70,100
}
長くなりました すみません
このようにしているんですが
これを毎回*の時につけようかと思ったんですが二回目からのgcopyのところがパラメーター値が異常になります
なぜでしょうか?
追記
説明が下手です
言ってる意味が分からなかったら言ってください



この記事に返信する


あらや

リンク

2020/4/14(Tue) 21:02:34|NO.90104

gselの位置がおかしいのでは?


// 大部分省略 buffer 1 pos xx,yy color 255,255,255:gmode 4,0,0,256 gsel 0,1
これだとバッファ1に対してのカレントポジション(pos)やカラー、
コピーモード&サイズを設定しているだけで
メインのウィンドウ0に対しては何もしていませんよね。

ループ位置が不明ですが、
buffer 1とstickの間からループが始まると考えるのならば
初回はバッファ1に対してポジション等を設定し
2回目以降は『gsel 0』の影響が残ったままになるので
ウィンドウ0に対してポジション等が設定されるはずです。



サトプー

リンク

2020/4/15(Wed) 13:18:07|NO.90107

すみません
初心者であまりわからないんですが



とおりすがり

リンク

2020/4/15(Wed) 14:33:03|NO.90108

>>No.90107
どの辺がどのように分からないのか、理解できているのか
記載しないと、どう分からないかこちらも分からないので
書いた方がいいと思いますよ。

本題です。
自分なりにスクリプトを実行してみて気になる点を挙げてみます。
バッファに読み込んでいる画像はどのようなサイズなのかなど
分からなかったため、黒塗り(boxf)で代用させていただきました。
また、ループ位置も不明だったため、2行目がループの始点としています。

1.3行目のstickですが、key=1ではなく、key,1だと思われます。
2.muki=1に関して、一度"←"キーが入力されたらずっとmukiは1のままとなり、
8行目からの「if muki=1」が常に実行される状態となっています。

上記を修正したのが下記のものです。

buffer 1 : color 0,0,0 : boxf;画像がなくても実行できるように黒塗りの物に変更 *main;ループ用にフラグを作成 stick key,1;key=1をkey,1に変更 if key=1{ xx-=5 muki=1 } if muki=1{ pos xx,yy color 255,255,255:gmode 4,0,0,256 gsel 0,1 color 255,255,255 : boxf;動作していることが分かるように画面を空白に gcopy 1,0,0,70,100 muki=0;mukiを0にリセットする } wait 10 goto,*main
これでエラー無く実行が可能であると思います。
故に、「パラメーター値が異常」の原因は記載されていない
スクリプトの箇所にあるのではないかと推測しています。



サトプー

リンク

2020/4/15(Wed) 15:12:23|NO.90109

通りすがりさんの描いたキャラ移動機能をAとして
A
*tugino
A
にすると
三行目のAがパラメーター値が異常になります
キャラの移動機能を違う部分にも置きたいのですがどのようにすればいいでしょうか?
何回も質問してしまい申し訳ありません



とおりすがり

リンク

2020/4/15(Wed) 16:02:44|NO.90110

>>No.90109
移動機能A(1回目)と移動機能A(2回目)を必要とする状況が思いつかず、
とりあえず、
>>A
>>*tugino
>>A
になるようにしては見たのですが、問題なく動作しました。
具体的には、←キーが入力された際の処理「if muki=1」が行われた回数を記録し、
5回になったら*tuginoに遷移するようにしています。
スクリプトは最下部に記載しております。ご参照ください。

2回目のgcopy命令で「パラメータ値が異常です」のエラーが発生するとのことですが、
1回目と2回目の動作で、スクリプトを書き換えてはいないでしょうか?
上記スクリプトを丸々コピーして動作させてもエラーは起きないので、
やはりここでは出ていない箇所に問題があるように思います...


buffer 1 : color 0,0,0 : boxf *main stick key,1 if key=1{ xx-=5 muki=1 } if muki=1{ pos xx,yy color 255,255,255:gmode 4,0,0,256 gsel 0,1 color 255,255,255 : boxf gcopy 1,0,0,70,100 muki=0 count+=1;カウント増やす if count=5 : goto,*tugino;5回←キーを入力したら*tuginoへ遷移 } wait 10 goto,*main stop *tugino stick key,1 if key=1{ xx-=5 muki=1 } if muki=1{ pos xx,yy color 255,255,255:gmode 4,0,0,256 gsel 0,1 color 255,255,255 : boxf gcopy 1,0,0,70,100 muki=0 } wait 10 goto,*tugino



サトプー

リンク

2020/4/15(Wed) 16:54:20|NO.90111

すみません説明下手でした
goto *tugino
A1
*tugino
A2です
あとキャラ移動機能を
gotoを使うごとにおかなければならないと思ったんですが他に方法はありますか?
僕がやりたいのは最初の*で動き、とあることをしてgotoで違う*に飛び、そこでも動く
ということをしたく両方の*にAをいれているのですが他に方法はありますか?
本当に何度もお聞きしてすみません



とおりすがり

リンク

2020/4/15(Wed) 17:32:20|NO.90113

>>90111
分からない時は分からないままで終わらせるより
理解して終わる方がいいと思ってるので、全然何回でも聞いていいと思いますよ。
自分も分からないこと聞くとき説明下手でよく怒られますし...

本題です。もしかしてですが、
>>goto *tugino
の記入先ですが、buffer命令よりも前に記載されていませんか?
>>*tugino
>>A2
の中にbuffer命令は含まれておらず、
>>A1
にしか記載されていないのではないでしょうか?
もしその通りなら、「goto *tugino」の前にbuffer命令を記載してみてください。

>>あとキャラ移動機能を
>>gotoを使うごとにおかなければならないと思ったんですが他に方法はありますか?
これですね、恐らく「onkey」命令などでキー入力を検知するので良いかなと思います。
そうすれば記載は一度で済むかと思いますが、
ゲームではonkeyは使わず、getkeyとかにした方が良いって話をよく見かけるので
微妙ですかね。その辺は詳しい人にお任せします。
(自分はゲームよりツールの方メインで作るので)



サトプー

リンク

2020/4/15(Wed) 18:42:27|NO.90114

たしかにbufferが後にありましたありがとうございます!
ちゃんとでました



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