1 名前:デフォルトの名無しさん [2011/03/15(火) 14:47:25.05 ] 災害で大変だけど、頑張ろうよ… HSP初心者向けの質問専用スレッドです。 ■とりあえずこれを嫁。 www.geocities.jp/hsp_summary/law.html ■前スレ 【まだ】HSP初質P57【いる?】 hibari.2ch.net/test/read.cgi/tech/1258974378/ ■HSPの入手はここから(HSP3.3β1) □HSPTV hsp.tv/ ■HSPの各種情報 □HSP Wiki quasiquote.org/hspwiki/ ■HSPLetの入手はここから(ブラウザ上でHSPを動かす) □HSP BIGINNER'S CLUB www.rinku.zaq.ne.jp/ultimate/ ■HSPスレまとめページ □Hot Soup Processor@2ch hsp2ch.hp.infoseek.co.jp/ <---リンク切れ www.geocities.jp/hsp_summary/
238 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 19:18:20.91 ] 自分の書いたプログラムみてたら単調な命令ばかりで行数が無駄に多いことに気付いた 頭のいい人間なら熟考した上でrepeatや配列をつかったエレガントな文を書くんだろうな でも俺アホだからそういうの思いつかないんだよな。だからソースは他人に絶対見られたくない おまえらはどうよ?
239 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 19:28:55.75 ] 単調な命令ばかりで行数も五千行になったけど別に「見られたくない!」とまでは思わないなあ 変数の単語の使い方が間違ってたら恥ずかしいな、とは思うけど ぶっちゃけ変数だけでもかなり色々出来るしわざわざムリしてまで難しい命令を使う事は無いと思うよ 誰かに教える事を前提とするならちょっと考えなきゃいけないのかもしれないけど
240 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 21:51:57.87 ] 他人の書いたソースは無駄も含めて色々勉強になる ソースを公開してくれるのはありがたい 知らない命令つかってたりしてな 無駄が多いと気付いたんなら>>238 のスキルが上がってきた証拠じゃね?
241 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 22:08:36.16 ] じきに local がずらっと並んでエディタがどこまでも横スクロールするようになる
242 名前:デフォルトの名無しさん [2011/07/15(金) 22:45:24.70 ] ふ〜ん
243 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 23:22:58.22 ] 無駄が多いと気づいたなら、書きなおして無駄を減らせばいいだけでしょ
244 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 05:58:06.28 ] >>238 ループでまとめたほうがすっきりすると思っていたが、 マクロ生活のマクロ見て愕然とした。 シンプルな記述で羅列したほうがめちゃめちゃすっきりしてた。
245 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 12:51:30.08 ] 動いてるところだけ見てもコードの汚さなんて分からないんだから 無駄でも冗長でも別にいいんだよ、モジュール化に限界のあるHSPでは それは十分許される
246 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 23:03:08.50 ] みんな優しいな
247 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 21:15:33.61 ] プログラムってさ、書いてるうちにブラックボックス的なコードになってたりするよね?
248 名前:デフォルトの名無しさん [2011/07/17(日) 22:44:00.86 ] hgimg3で、objchildにより何かの子になっているobjectが delobjで消去できないのは仕様でしょうか? ドキュメントにあるとおり、delobjに親を指定すれば子もろとも消えるのですが 公式に打ち上げれば修正されるのでしょうか?
249 名前:デフォルトの名無しさん mailto:sage [2011/07/18(月) 19:58:38.09 ] hgimg3は資料が少なすぎて使う気になれない ユーザーを増やそうという気概も感じられない そんなhgimg3に手を出したのなら 公式のサポートなどあてにしない孤高のプログラマとなり 自分の知恵と力で道を切り拓くべき わりとマジで
250 名前:デフォルトの名無しさん [2011/07/19(火) 01:16:38.68 ] >>248 delobj前に親子設定破棄
251 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 02:02:11.76 ] >>247 だから俺は12個に分けた
252 名前:デフォルトの名無しさん mailto:sage [2011/07/19(火) 15:52:41.34 ] プログラミング全般に言えることなんだけど ネット資料がいろいろと少なすぎるから 結局金払ってマニュアル本なり英語のサイト漁らないといけない
253 名前:デフォルトの名無しさん mailto:sage [2011/07/20(水) 15:45:48.63 ] ぷよぷよのようなゲームを作ろうと思っているのですが、 ↑キーを押した時に時計回りにブロックを回転させる操作をしたいと 考えています。 しかし、1度↑キーを押しブロックが時計回り(左上)へ移動した後に もう一度↑キーを押すとそのまま左上へ行ってどこかへ行ってしまいます。 ブロックの中心を軸にその周りを回る方法を知りたいのですが、 参考にするといいサイトなどあるでしょうか?
254 名前:デフォルトの名無しさん [2011/07/20(水) 21:43:26.01 ] 早く誰か答えなさい…
255 名前:デフォルトの名無しさん [2011/07/20(水) 21:55:22.20 ] ソースコードをupすれば、誰か答えるだろう…
256 名前:253 mailto:sage [2011/07/21(木) 10:30:11.14 ] ソースコードはとあるサイトにあったソースを元に改ざんしているのですが まだ調べが甘かったようです。 質問しておいて失礼ですが、 気になるサイト(ソース付き)を見つけたのでひとまず そのソースをいじりながら勉強をしてみます。 お騒がせしましたm(_ _)m また行き詰ったらお邪魔しにくるかもしれませんが・・w
257 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 18:16:39.76 ] コピペで試行錯誤するのは止めとけ 技術は全く身につかないし、時間の無駄
258 名前:デフォルトの名無しさん [2011/07/21(木) 19:35:07.24 ] hspletRPGを作りたいってとき セーブデータってどこに保存されるの・・・?
259 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 15:06:51.73 ] ぷよぷよよりテトリスの方がソースたくさんネット上に置いてありそうだけどな 構造も似てるし参考にはなるだろ 知りたいのは落ちてくるブロックの回し方なわけだし まあそこで苦労してるようじゃ連鎖過程でさらに苦労しろうだな
260 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 22:55:50.16 ] newmod してできたモジュール変数のインデックスを知る方法はありますか?
261 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 23:04:52.10 ] >モジュール変数のインデックス なにそれおいしいの
262 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 02:34:12.56 ] >>261 newmod を繰り返すと配列見たいのがどんどん伸びていって delmod をすると歯抜けになる その後で newmod すると抜けてた部分が埋まるんだよ そうなると新しく newmod された部分がどれなのか調べるのが面倒なんさ
263 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 03:24:47.96 ] みんな無限ループエラーの時のデバックどうやってる? ゲームがフリーズするから普通に変な動きした時よりエラー箇所探すのめんどくさい
264 名前:デフォルトの名無しさん mailto:sage [2011/07/23(土) 08:56:31.30 ] >>260 このwikiの「モジュール変数の配列番号を取得する」は違う? ↓ hspdev-wiki.net/?hsp3%2F%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%CA%D1%BF%F4
265 名前:260 mailto:sage [2011/07/23(土) 14:21:52.52 ] >>264 探していたのはまさしくコレです ありがとうございました
266 名前:デフォルトの名無しさん [2011/07/23(土) 22:04:05.56 ] >>265 いえいえ ひょ〜〜〜〜
267 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 01:41:38.90 ] >>263 wait,awaitなんかの待機処理入れて動作見たり、ループ脱出条件の変数を出力して監視したり。
268 名前:デフォルトの名無しさん [2011/07/24(日) 20:18:02.50 ] MIDI音源の再生について質問です。 前のパソコンでも使っていたシーケンスソフトで快適に再生できていたファイルがもたつき、音が途切れ途切れになるなどの症状が出ていて困っています。 重い常駐ソフトも特になく、ソフトからエクスポートしたファイルをWindowsMediaPlayerで再生してもスピードが0.3~0.4秒前後不安定(遅い)で、以前は正しく発音されていた部分が途切れたり消えたりします。 ソフト上でも同様です。デバイスの確認や診断も行なってみましたが、異常なし ・現在 OS:Windows7 Home Premium 32-bit (6.1, Build 7600 ) Procerror:AMD Athlon(tm) II X2 255 Processor (2 CPUs), 3.1 GHz Memory:2048MB RAM Page File:786MB 2795MB availableDirectX:DirectX 11 Sound Devices Description:スピーカー(Realtek High Definition Audio) Driver Name:RTKVHDA.sys HW Accel Level:Basic EAX(tm) 2.0 Listen/src:No, No I3DL(tm) Listen/src:No, No ------------------ ・以前 OS:WindowsXP Home Edition(5.1, Build 2600)SP2 Procerror:Intel(R) Celeron(R) CPU 2.80GHz Memory:256MB RAM Page File:274MB 337MB available DirectX:DirectX 9.0c Sound Devices Description:Realtek AC97 Audio Driver Name:ALCXWDM.SYS HW Accel Level:Full EAX(tm) 2.0 Listen/src:Yes, Yes I3DL(tm) Listen/src:Yes, Yes お願いします
269 名前:デフォルトの名無しさん mailto:sage [2011/07/24(日) 22:10:02.62 ] メディアプレーヤーでそれってことはHSP全然関係ないよね ここで聞く事じゃないと思うけど XPで使ってたソフトそのまま使ってるの? OSアップデートしたら過去アプリ使えなくなるのは珍しい事じゃないよ 互換モードで使ってみ それ以上のことはグーグル先生に
270 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 09:53:51.51 ] windows7だとareo周り? 後はDirectSound関係かな?
271 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 17:38:19.23 ] >>188 2007年のプログラムコンテストに反乱軍記っていうソフトを作った人がいたよー
272 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 15:20:51.96 ] repeat〜wait 10〜 loopと書くよりも、label〜wait 10〜 goto labelで記述した方が 体感的にキーの入りがいいように感じるのですが、みなさんはどうでしょうか? 世間的にgoto文は多用すべきでないと言われてるので、repeat文で書いてます・・・
273 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 15:53:12.81 ] HSPだけに限って言えばrepeat〜loopは意外と使い難い局面が多々あるので gotoと場合によって使い分ければいい 俺はメインループはgotoでサブルーチン内でだけrepeat〜loopを使うようにしてる ちなみに処理速度だけならrepeat〜loopの方が若干速いからキー入力云々は気のせいだろ
274 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 18:17:44.39 ] モジュール変数を知って今まで苦労していた部分が楽になった が、今まで楽に出来ていた部分で苦労するようになったw
275 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 19:04:25.64 ] 苦労した成果 #module hoge a, b #deffunc swap_var var x, var y, local z z=x : x=y : y=z return #modinit int a_, int b_ a=a_ : b=b_ return #modfunc hoge_print mes strf("a=%d b=%d", a, b) return #modfunc hoge_swap_ var a_, var b_ swap_var a, a_ swap_var b, b_ return #modfunc hoge_swap var target hoge_swap_ target, a, b return #global newmod x, hoge, 1, 2 newmod x, hoge, 3, 4 newmod y, hoge, 5, 6 hoge_swap x.1, y.0 foreach x hoge_print x.cnt loop hoge_print y.0
276 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 19:06:47.55 ] >>272 カウンタが有るか無いかぐらいの差しかないよ てかゲームで使うならawaitな >>274 多次元配列は一次元配列より倍近く重いから一フレームで大量に扱う物にモジュール変数は不利になるから注意
277 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 22:01:47.68 ] >>275 モジュール変数というかメンバ変数?を使いこなせるなら もうC++やC#を使った方が楽かもなw
278 名前:272 mailto:sage [2011/07/26(火) 22:09:16.96 ] タイトル画面でスタートキーを押したにもかかわらず、受け付けてくれないことが多々ありまして、 出鼻を挫かれたプレーヤーが少しイラっとされるんじゃあないかと思ったんですよ・・・
279 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 22:31:13.83 ] >>272 repeat〜loopはgotoでループ抜けるとネストが残ったままになるから、 gotoでループするとかdoとかwhileを使った方がいいらしいな。
280 名前:デフォルトの名無しさん [2011/07/27(水) 00:43:30.28 ] ついでに氷もたのむ
281 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 03:00:18.23 ] >>278 それはループ処理かキー入力取得自体に問題があるんじゃないのか? 30fps程度で動かしてたとしても、非同期のキー入力を取りこぼす事は普通ありえないぞ
282 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 12:27:51.48 ] gotoしてる文、ループ時の条件文がスルーされてるってオチだったりして
283 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 13:24:38.84 ] ネストが残るてどういう意味なん? メモリにゴミでも溜まるんかい?
284 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 13:56:12.76 ] repeat -1 gosub *nest_houti loop *nest_houti stop ; repeatブロックの中のまま、gosubで飛んだまま
285 名前:デフォルトの名無しさん [2011/07/27(水) 20:12:50.69 ] え?
286 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 21:56:17.47 ] それはいいんじゃね? つかHSPにも関数ブロックみたいなのがほすい。returnし忘れとかやめて〜
287 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 10:01:31.30 ] >>284 の何が危ないのかわからないんだったら、 gotoによるループをオススメする
288 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 10:25:55.25 ] ミスを誘う仕様っぽいけど今更どうしようもないだろw
289 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 17:22:41.04 ] gosubでreturnしないなんて、初心者の漏れでもやったことない
290 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 17:52:06.98 ] 他人のコード理解しないままコピペしてたら起こり得る
291 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 19:53:53.35 ] 自分のスクリプトを確認してみたら、gosubで飛んだラベルから条件分岐で別のラベルにgotoする処理もあるんだけど その場合もネストがなんたらで危ないのか?別に、エラー吐いたりフリーズしたり不具合もでたことないんだけど・・・
292 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 20:23:16.56 ] grotateで画像が乱れるとお悩みのあなたに embed_grotate ! これがあればアルファチャンネル付き画像だってグリグリ回せちゃいます 今なら外部DLL一切不要 一家に一台 embed_grotate !!! ● 特長 grotate とそのまま置き換え可能 外部DLLが不要 画像が乱れにくい アルファブレンドコピーができる アルファブレンドコピーモードの際に半透明合成時のブレンド率も適用される (アルファチャンネル付きの画像をフェードイン、フェードアウトできる) ● grotateと異なる点 転送先、転送元いずれかがパレットモード時には動作しない grotateよりも低速(約80%〜60%) アルファブレンドコピーモードの際の動作が異なる ● 使い方 1.embed_grotate.hsp を HSP の common フォルダにいれる 2.embed_grotate.hs を HSP の hsphelp フォルダにいれる 3.#include "embed_grotate.hsp" と記述する 4.grotate のかわりに embed_grotate と記述する プラグイン作ったので宣伝してみました simasuzu.web.fc2.com/
293 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 01:53:44.66 ] >>291 ややこしいがそのgoto先の中でreturnしてればおk 自分が見易い形に整理していった結果そうなったならそれでいいんだろう
294 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 05:48:59.55 ] gosubしたらreturnで戻ってこないと、(スタック?に記録された戻り値が解消されないまま?だから) それがどんどん溜まるとエラーになってプログラムが落ちる場合もあるという理解でいいんですかね? ttp://hsp.tv/play/pforum.php?mode=pastwch&num=5340
295 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 12:57:07.22 ] #cmpopt varinit 1 ってみんな使ってない? 人様のモジュール使うとき自前で変数の初期化するの面倒なんだが
296 名前:292 mailto:sage [2011/07/29(金) 17:29:14.21 ] ver1.4 できました 処理速度が grotate とほぼ同等になりました 描画領域の計算が正確になりました(タイルパターンの描画にも使えるようになりました)
297 名前:デフォルトの名無しさん [2011/07/29(金) 23:49:51.81 ] ここは宣伝スレじゃないんで^^
298 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 11:09:21.31 ] >>283 これを実行してみればわかる i=0 *main repeat i++ cls mes i goto *main loop
299 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 12:28:05.19 ] せめてwaitを
300 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 13:51:27.70 ] いらないだろ
301 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 18:30:01.53 ] looplev sublev 地味すぎるシステム変数たち
302 名前:272 mailto:sage [2011/07/30(土) 18:33:55.24 ] repeat stick a if a=16:goto *main wait 10 loop というふうに書いてました。あまり良くないようなのでgoto文に変えることにします。 質問に答えてくれた方々、どうもありがとうございました。
303 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 19:15:17.91 ] >>302 お前全然意味分かってないだろw goto使うなっつってるのにwww
304 名前:デフォルトの名無しさん [2011/07/30(土) 21:35:00.05 ] repeatをgotoに変えるんだろ repeat使うなら *main mes b b++ repeat stick a if (a&16):break wait 1 loop goto *main こんな感じ if (a&16) にしたのはa=16じゃスペース以外も押されてるとtrueにならない 後stickやgetkey命令は先行入力が効かないみたいだから wait 10だとポンと押して離すとwait中に入力終わっててキー検出できない
305 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 00:37:56.73 ] まじgoto廃止しろよ・・・
306 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 08:48:47.01 ] >>305 goto廃止したら、for、whileといったマクロも使えなくなるぞ。 んなことより、goto使うとおかしくなるrepeatを無くせよ。
307 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 08:59:42.10 ] 基本的な文法くらい素でサポートしろよなw 今更だが、マクロで拡張するという考えがまずかった
308 名前:272 mailto:sage [2011/07/31(日) 10:12:26.83 ] >>304 ありがとうございます。この問題は解決できました。 でもrepeat文の使い方がまずい文が他にもたくさんあって、 今の自分の力では、もう手がつけられなくなっちゃいました・・・
309 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 13:46:04.08 ] 即席でギャグとして作ってみたw #undef repeat #undef loop #undef break #undef continue #undef cnt #define repeat(%1=-1,%2=0) %trepeat %i=0%c%s1%s2 *%i%c cnt=%p3+%2%c if (%p3>=(%p2)) & ((%p2)>=0):goto *%i%i0%c #define loop %trepeat *%o%c%p4++%c goto *%p1%c*%o%o0%o0%o0%o0 #define break %trepeat goto *%p1%c #define _continue_ cnt+1 #define continue(%1=_continue_) %trepeat %p5=%1-%p3:goto *%p2%c これならネストの問題もなく動くでしょ
310 名前:デフォルトの名無しさん mailto:sage [2011/07/31(日) 22:52:04.34 ] これが速攻で組めるとは… 俺もまだまだだな
311 名前:デフォルトの名無しさん mailto:sage [2011/08/01(月) 10:47:46.22 ] cだなc
312 名前:デフォルトの名無しさん [2011/08/04(木) 23:24:27.01 ] >>309 C厨乙
313 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 06:14:20.55 ] ちょっとお聞きしたいのですが、HSPってもしかして本来飛ばすはずの次の処理とか結構読んじゃったりする? ってスレ流し読みした感じだともしかしてgoto使ってるのがわるいのか 処理順でもバグってるのかこれ・・・
314 名前:デフォルトの名無しさん [2011/08/07(日) 06:16:46.71 ] sageてしまったのでage
315 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 10:58:54.01 ] >>313 そういうバグは聞いたことないよ。
316 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 12:13:23.94 ] 短絡評価はもともと無いよ
317 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 12:28:59.86 ] 自分の思うように動かないと 処理系のバグだと考える 実に初心者スレにふさわしいレス …みんな一度は通る道だよね
318 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 12:31:20.36 ] 俺も幼稚園の頃はそうだったわ
319 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 12:49:55.33 ] swbreak?
320 名前:デフォルトの名無しさん [2011/08/07(日) 15:10:28.83 ] >>315 ありませんか・・・すいません。 間違いようがない処理のはずなんですがなぜかバグる。 色々略してますが if flag = 0{ 処理 flag =1 } 程度の物なのになぜかflagが1の時にも処理が実行されてしまいます
321 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:15:02.94 ] >>320 実行可能で現象が再現する最小のソースを用意してくれ
322 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:17:07.95 ] flag が local で宣言されてるとかじゃね? local は毎度初期化されるから
323 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:41:58.82 ] タイプミスとか いや、笑いごとでなくて
324 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:44:22.11 ] ちょっともう一度最低限に削ってテストとタイプミスチェックしてみます だめならコード張ってみます
325 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:47:49.85 ] randomize flag = rnd(2); 0=白,1=黒 dim arr,8,8; 8x8の二次元配列 i = 0: j = 0: xx = 0: yy = 0; ;配列を0で初期化 repeat 8 repeat 8 arr(i,j) = 0 j+=1 loop i+=1 j=0 loop ;配列を0で初期化終了 arr(3,3) = 1: arr(4,4) = 1;白駒配置 arr(4,3) = 2: arr(3,4) = 2;黒駒配置 *game redraw 2 cls 0
326 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:49:37.76 ] i = 0: j = 0: x = 20: y = 20 repeat 8 repeat 8 pos x,y mes arr(i,j) y+=50: j+=1 loop x+=50: y=20: i+=1: j=0 loop if xx!="":pos 420,100:mes xx if yy!="":pos 470,100:mes yy if flag = 0: pos 450,50: mes "白のターンです" if flag = 1: pos 450,50: mes "黒のターンです" redraw 1 onclick goto *click_wait stop
327 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:51:04.94 ] *click_wait xx = mousex yy = mousey i = 0: j = 0 while(i<=8) while(j<=8) if xx > (j*50) & xx < ((j+1)*50) & yy > (i*50) & yy < ((i+1)*50){ if arr(i,j) = 0{ arr(j,i) = flag + 1 if flag = 0 { flag = 1 }else{ flag = 0 } } } j+=1 wend i+=1: j=0 wend goto *game
328 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 15:53:23.68 ] 実際にバグるというのは、なぜか普通にクリックする分には0→1or2に変わればそれ以上変わらないのですが、 ダブルクリックや高速でクリックしまくると1→2→1→...と切り替わってしまったりするんです
329 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 16:19:55.31 ] クリックしたときに押下状態を更新する。 メインループでその状態を見るって感じでいいかと。
330 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 16:29:15.03 ] >>328 > if arr(i,j) = 0{ > arr(j,i) = flag + 1 ダブルクリックとか関係なく この部分 i,j と j,i の順序が変わってるからじゃね?
331 名前:デフォルトの名無しさん [2011/08/07(日) 16:32:07.39 ] >>330 うわ・・・馬鹿すぎるorz すいません、その処理のほうのjとiを入れ替えた後、その条件式のiとjを入れ替え忘れていました 本当にご迷惑をおかけしてすみませんでした ありがとうございました
332 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 19:24:24.02 ] なんかほのぼのした
333 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 21:54:12.63 ] まあ解決してなにより
334 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 00:11:49.09 ] HSPなんかやるよりもC#で書いた方が余程マシじゃね? HSPなんか何にも良いことないじゃん。
335 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 05:46:53.52 ] ああ、そうだね
336 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 06:15:26.92 ] 言語仕様や開発環境でHSPが勝てる点は一切無いだろうね でもC#は非ネイティブという致命的欠陥がある
337 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 06:27:41.45 ] HSPはエディタが前触れも無く異常終了するのが難点
338 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 09:30:39.71 ] HSPだって非ネイティブじゃないの?
339 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 10:58:07.33 ] ワロス
340 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 11:04:01.41 ] >>337 3.3rc1にしなよ エディタもバージョンアップしてるから
341 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 11:07:15.82 ] たしかに公式掲示板の質問でそれやるならHSP使わない方が はるかに楽だろうというのはよくあるけどな
342 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 14:17:39.27 ] module 内で初めて実行されたかどうかのフラグを使いたいんだけど下の使い方でいいの? 今のチェックをすり抜けてるだけで実際には未初期化の変数使ってるから後のバージョンでエラーにされる? #cmpopt varinit 1 #module test_module #deffunc dummy ; varinit 1 のエラー回避用 is_initialized=0 return #deffunc run_once ; この関数が一回だけ呼ばれるようにしたい if is_initialized : return ; varinit 1 のとき関数 dummy を消すとここでエラーになる mes "initialize" is_initialized=1 return #deffunc hoge run_once mes "hoge" return #deffunc huga run_once mes "huga" return #global hoge huga hoge
343 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 15:38:29.50 ] >>342 考え方は○ですが dummy を一度呼んでおきましょう #global dummy hoge huga hoge
344 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 17:12:45.19 ] 入門書では教えてないような命令を多く使ってるのね。 これで初心者って、みんなすごいね!
345 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 18:18:18.30 ] >>344 いろんな命令を使ってみるといいよ 慣れてきたら使わずに書くほうが難しくなるよ module とか使わずにプログラム書ける人すげーって思うもん
346 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 18:25:11.29 ] こんなのは #deffunc 使わないとかえって難しい ; ハノイの塔を解くプログラム hanoi 4, "A", "B", "C" stop #deffunc hanoi int disc, str from, str to, str free if disc<=0 : return hanoi disc-1, from, free, to mes strf("disc %d : from %s to %s", disc, from, to) hanoi disc-1, free, to, from return
347 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 18:30:59.68 ] >>334 C#なんかやるよりもC++で書いた方が余程マシじゃね? C#なんか何にも良い事ないじゃん。
348 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 19:17:51.01 ] じゃあC++やればいいじゃんw
349 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 19:40:49.09 ] そういえば、5年位前にネットで7行くらいのテトリスみたことあったけど HSPだと何行くらいかかるんだろうな
350 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 19:51:26.35 ] テトリスならHSPの弱点が影響しにくいから 他言語とそんなに違いは出ないかと
351 名前:デフォルトの名無しさん mailto:sage [2011/08/08(月) 20:32:56.90 ] >>343 ありがとうございます 一度 dummy を呼ぶようにします
352 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 00:55:26.99 ] >>350 ソース解説なんぞいくらでも転がってるからがんばれは移植できそうだよな 時間掛かりそうだなあ・・・
353 名前:デフォルトの名無しさん [2011/08/09(火) 13:49:24.88 ] >>351 moduleを別ファイルにしてるなら そっちにdummyを追加な includeすれば実行されるし
354 名前:デフォルトの名無しさん [2011/08/09(火) 22:41:43.14 ] おれを無視するなよ・・・
355 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 23:31:30.40 ] >>354 どのレスがお前やねん・・・
356 名前:デフォルトの名無しさん mailto:sage [2011/08/10(水) 01:59:30.98 ] 夏休みどすな
357 名前:デフォルトの名無しさん [2011/08/12(金) 12:20:49.69 ] ですねw
358 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 13:28:39.67 ] 盆休み保守
359 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 15:02:21.99 ] なんでか、盆休みのほうがかきこみすくないね
360 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 15:07:31.62 ] embed_grotate ver1.9 simasuzu.web.fc2.com/ #cmpopt varinit 1 に対応したよ ファイルサイズが小さくなったよ
361 名前:デフォルトの名無しさん mailto:sage [2011/08/13(土) 16:46:45.36 ] >>360 おつかれさん 機会があったら使ってみるよ
362 名前:デフォルトの名無しさん [2011/08/16(火) 12:35:27.48 ] >>359 不思議だよね
363 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 15:27:53.61 ] オッサン達は帰省やら家庭のことでむしろ忙しいのかもしれぬ。 コンテストの投稿者みてたら、キャリア5年前後の10代が多いようだ。 ベーシック(HSP)は、オッサンホイホイだと思っていただけに以外だった。
364 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 19:47:40.19 ] コンテスト期間の後半を待ってみ オッサンがいっぱい来るから
365 名前:デフォルトの名無しさん mailto:sage [2011/08/16(火) 19:49:09.87 ] >>363 おっさんならまず「BASIC」でググるような気がする・・・ そして互換BASICに流れる気がする・・・
366 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 01:57:22.71 ] 見た目はあんまりBASICっぽくないよな 泥臭さはBASICより酷いが
367 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 21:17:14.69 ] セーブがうまいことできないけど やりようによっちゃ普通のRPGみたいにできるもんだね
368 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 22:04:43.55 ] notesaveとかbsave使えよ
369 名前:デフォルトの名無しさん mailto:sage [2011/08/17(水) 23:34:27.09 ] そこはvsaveだろ
370 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 01:23:49.10 ] vsaveっていう命令もあったのか。標準命令じゃなかったので知らなかった。 便利そうだから今度使ってみる。サンクス。
371 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 09:28:14.82 ] 皆さんは、モニタの画面解像度をどのくらいにしてますでしょうか? 自分は、1027x768が丁度いいと思っているのですが、昔のHSP製のゲームの場合 ウィンドウが小さくなってしまって遊びづらい物も数多くあります。 (とはいえ、画面の解像度をいちいち800x600に変更したくはありませんよね?) これからゲームを作る場合、スクリーンのサイズをなるべく大きなものにして 32x32で描いていたキャラクターを倍にしたほうがよいのでしょうか? あともう一つ気になったのですが、さらに高解像度にしたところ画像が歪んで見えました。 (アイコンが横長だったり、縦長になったりなんとなく比率が違うように感じました。) 将来的には、どの解像度を基準にしてプログラムを作ったらよいのでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 11:09:00.44 ] >>371 幾つかのウィンドウサイズに変更可能にしておいてユーザに選ばせるのが一番楽
373 名前:668 mailto:sage [2011/08/18(木) 16:28:13.44 ] 自分がユーザーなら>>372
374 名前:デフォルトの名無しさん mailto:sage [2011/08/18(木) 17:59:18.41 ] 668ってなに?
375 名前:デフォルトの名無しさん mailto:sage [2011/08/19(金) 11:14:34.31 ] コンテストスレで使ったコテの消し忘れだな
376 名前:デフォルトの名無しさん [2011/08/21(日) 14:46:28.40 ] へえ
377 名前:デフォルトの名無しさん [2011/08/21(日) 22:11:52.15 ] test
378 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 17:35:57.59 ] mes "test"
379 名前:デフォルトの名無しさん [2011/08/22(月) 21:55:14.26 ] test
380 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 22:51:41.51 ] そろそろsageる事くらい覚えたらどうかね
381 名前:デフォルトの名無しさん mailto:sage [2011/08/22(月) 23:47:02.10 ] >>342 は dummy をユーザーが呼び出す可能性を考えると is_initialized@test_module = 0 ;〜〜〜〜〜〜〜〜〜〜〜〜〜↑↓別ファイル(でなくてもいいけど) #cmpopt varinit 1 #module test_module とする方がより安全かなと今思った
382 名前:デフォルトの名無しさん [2011/08/25(木) 16:25:30.48 ]
383 名前:デフォルトの名無しさん mailto:sage [2011/08/25(木) 23:53:38.83 ] >>382 それは、全角スペースが原因です。
384 名前:デフォルトの名無しさん mailto:sage [2011/08/26(金) 13:35:53.91 ] 復活!
385 名前:デフォルトの名無しさん [2011/08/28(日) 21:58:03.04 ] へえ
386 名前: 忍法帖【Lv=2,xxxP】 [2011/08/28(日) 22:04:50.85 ] mes "test"
387 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 09:37:46.58 ] >>386 テストはこっちでやって [TEST] 書きこみテスト 専用スレッド 38 [確認] hibari.2ch.net/test/read.cgi/software/1314425987/
388 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 10:01:15.46 ] テストって何のためにやってるの?
389 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 20:20:17.20 ] 勉強した内容を理解してるかの確認のためじゃね?
390 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 07:39:47.68 ] _______ __ // ̄~`i ゝ `l | / / ,______ ,_____ ________ | | ____ TM | | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>> \ヽ、 |l | | | | | | | | ``( (. .| | | | ~~ `、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二='' ヽヽ___// 日本 .______________ __ |韓国はなぜ反日か? | |検索|←をクリック!!
391 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:03:52.33 ] 今HSPでメトロノーム作ってるんだけど、音の間隔が安定しなくて 全然使い物にならない・・・
392 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:22:45.26 ] wait とか await だけだとバラつくよ
393 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:30:20.55 ] await使ってる 他になんか間隔あけれる命令ある?
394 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:56:57.49 ] >>388 勉強的な理由→勉強できたかの確認 プログラミング的な理由→バグの洗い出し&改良点の確認
395 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:59:46.02 ] >>393 いっそ #uselib "winmm.dll" #cfunc global timer "timeGetTime" みたいにしてtimer()で時間を取り出して、 現在時間-開始時間がなんとかミリ秒の整数倍なら云々といったルーチンはどうだい? 内部で間隔を開ける発想のawaitとかと違って正確にリズムを刻める 音ゲーづくりにも役立つと思う
396 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 00:04:20.15 ] >>393 ×あけれる ○あけられる
397 名前:393 mailto:sage [2011/09/01(木) 01:25:34.42 ] >>396 ごめんなさい ぼくがまちがってました・・・
398 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 05:00:13.14 ] _______ __ // ̄~`i ゝ `l | / / ,______ ,_____ ________ | | ____ TM | | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>> \ヽ、 |l | | | | | | | | ``( (. .| | | | ~~ `、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二='' ヽヽ___// 日本 ______________ __ |韓国はなぜ反日か? .| |検索|←をクリック!!
399 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 07:58:54.14 ] そんなのいちいち指摘しなくてもいい気がするけどね
400 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 14:29:24.06 ] イライラ迷路を作ってるけど、あたり判定をする命令が書けないorz
401 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 14:56:59.68 ] >>400 当たり判定用の buffer を作って pget すればおk
402 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 15:43:29.46 ] >>400 キー操作でマウス動かせるソフトでズルできないようにすればももっと完璧だな
403 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 20:08:36.96 ] >>393 WM_TIMERを使うとか? 正確とは言い難いけどなw
404 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 22:12:56.66 ] 返信してくれた方ありがとうございます >>395 鳴ボタン押した時間取得して、 それから設定時間経過したら音を鳴らすってことですよね? で、次は音鳴らした瞬間の時間から設定時間まで の繰り返しってことですよね? >>396 申し訳ない >>403 なるべく精度高めたいからなぁ… 参考にしてみます