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/
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