1 名前:名前は開発中のものです。 mailto:sage [2006/03/24(金) 18:31:39 ID:jNg23CIj] ( ,,,) .( ,,) スクリプト言語 HotSoupProcessor について ( ,,). ゲーム製作の視点から、また〜りと語り合うスレ。 , -──- 、 (,;::-──-; )-、 .|` ̄ ̄ ̄´;;|ヽ l * 質問する前に検索してみる事 l; :::;;;l-' / * ヲチ、ネタなどはスレ違い ,-ヽ───.'-、´.. * 歴代スレ、関連サイトは >>2-4 あたり ヽ ──── ' ONION software (本家) www.onionsoft.net/
381 名前:名前は開発中のものです。 mailto:sage [2006/05/13(土) 17:13:05 ID:4EGyUu/C] ?
382 名前:名前は開発中のものです。 mailto:sage [2006/05/14(日) 02:26:56 ID:JvlyfUtz] 別なファイルを同じ変数に読み込んでるとかじゃねぇだろうなw
383 名前:名前は開発中のものです。 mailto:sage [2006/05/19(金) 08:38:46 ID:4OLVW9Eb] SHADEや六角等で作った3Dモデルをテクスチャ付いたまま 読み込む事ってできないのでしょうか? HSPでまたテクスチャ張りなおすのはあまりにも辛いのですが。
384 名前:名前は開発中のものです。 mailto:sage [2006/05/19(金) 11:17:10 ID:4+hflT16] >>383 プラグインによるけど、Xファイルなら、そのまま使えるし、プラグイン独自形式にも変換するツールがある Easy3Dなら六角大王ファイルも変換して使える
385 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 02:54:01 ID:lR5GLbKN] HSP3は実数を整数より左に書かなくちゃいけないという制約があるせいで 今この変数は実数なのか、整数なのかって意識しながら1行1行書かなきゃ らならん。薄氷を踏む思いだ。やってられん。なんでこんな変な仕様に したんだろ。
386 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 15:10:07 ID:WH/D3RVY] そういう仕様じゃないと文字列に数値を連結できなくなるから。
387 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 19:18:10 ID:7IQM+URD] >>386 またまた、ご冗談を・・・
388 名前:名前は開発中のものです。 mailto:sage [2006/05/21(日) 19:31:40 ID:QeKgHpXS] なんつーか実数なんて使わんなぁ <<16で馴れちゃってるから。 3D使うなら必須なんだろうけどさ…
389 名前:名前は開発中のものです。 mailto:sage [2006/05/22(月) 08:27:57 ID:9I6/KX3Q] >>385 おにたまの実力不足です。 実数が3で入っただけでも奇跡と思って諦めて他の言語を習得しましょう。
390 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 12:07:38 ID:hjOPS5XU] 例えば変数aに "testval = 123" と代入しておいて その値を条件式としてどうにかしてifみたいな感じで使うことは可能? if a : … を if testval = 123 : … という風にみなしてほしいんだけど…。 何がしたいのかっつうと スクリプトを別ファイルに書いてて スクリプト内に複数の「イベント」とそのイベントを実行する条件式を書いておいて ループ毎にメモリノートパッドに代入した条件式が書いてある行を見に行って評価したい ってことなんだが多分難しいんだろうな…。
391 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 13:12:45 ID:7vomvTXy] >>390 前半部分のは良い方法を思いつかないけど、後半部分の件。 自分も今、そういうの作ろうとしてるけど、ポインタの考え方の応用というか、 変数の参照を、名前でなく、引数を通して間接的に参照するようにしたら 比較的簡単に実装できそうだなとか考えてる。 testHP = parm(1) testMP = parm(2) みたいな。
392 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 15:37:55 ID:72LEgXLd] 327氏のようにプラグインをサブフォルダにまとめて格納したいんですが、 どうすれば良いのでしょうか。 #regcmdってのを使ってみたんですが、出来ることは出来るんですが 最初に変なエラーが出てしまって…。
393 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 16:24:20 ID:1sE/IBhR] >>390 (ガンビットみたいなのをやりたいんかな?) 別ファイルの内容をメインのプログラムで 決まった書式で書くんならできるだろうね っていうか、ループごとにメモリノートパッドを 読みにいくのは効率が悪いんじゃ? セーブロードの時以外は条件や行動を 配列の中に取っておけばいいだけだし
394 名前:391 mailto:sage [2006/05/23(火) 16:44:08 ID:hjOPS5XU] レス有難う。 >>390 やはりそれしかないっすかね。 正直管理がマンドイ… >>393 ガンビット…わからなかったのでググってみたけどFF12ですかね? あーいうのじゃなくて、シナリオデータとして ----- evenum 50 ;イベントナンバー50 condition charaLP < 100,sys_time < 60000 ;キャラのLPが100未満かつ残り時間60秒未満 message "万事休すか…!" ;メッセージ表示 eveend ;イベントナンバー50ここまで ----- みたいなものを複数作っていて、 condition行に書いた条件式が満たされたら その下のmessage行にジャンプして、 各行を解釈しながらイベントを進行させる…っていうのがやりたいと思ってる。 メモリノートパッドについては考えてみます(´Д`;)
395 名前:394 mailto:sage [2006/05/23(火) 16:45:21 ID:hjOPS5XU] やべぇ、名前欄もレス番もずれてるorz 名前 391 → 390 × >>390 → ○ >>391 スマソ('A`)
396 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 16:54:47 ID:qykXFuzk] evalとかそんな話じゃないのかね。 HSPなら中間コードみたいなのに変換しておけばできそうな気がしないでもないが。
397 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 17:25:50 ID:jLJPB5NB] >>392 .ASファイルを直接編集 HSPDXFIX.ASなら #uselib "hspdxfix.dll" を #uselib "bin\\hspdxfix.dll" もっとスマートなやり方があるかも知れないけど ヘルプに >EXEファイル作成の際にPACKFILEに入れて、1つのEXEファイルにすることはできません。拡張プラグインを使用するEXEファイルを作成した場合は、EXEファイルと同じディレクトリに拡張プラグインを置いてください。 って、あるから仕様外になるのかも・・・
398 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 17:34:14 ID:1sE/IBhR] >>394 instr,strmid,getstrとかで 行ごとにどんな文字列があるか調べて、それによって 文字列を分解して変数に格納したり、処理を変えたりしたらいいんでない? if instr(text,0,"condition") ! -1{ めんどいので略w } とかな感じで あと、そういうのならメモリノートパッドでいいと思う
399 名前:392 mailto:sage [2006/05/23(火) 18:13:22 ID:72LEgXLd] >>397 上手くいきました。 ありがとうございました〜。
400 名前:名前は開発中のものです。 mailto:sage [2006/05/23(火) 18:50:44 ID:9gWOI92g] HSPで簡易インタプリタつくりゃいいじゃなーい
401 名前:ホスプロ ◆HOTsoUpxjY mailto:sage [2006/05/24(水) 00:21:07 ID:Dd1350vL] >>390 if a(0) = a(1) : … 二つに変数を分解すれば簡単。 「testval」とか連想配列にしたいなら#defineで代用。 もっと本格的にやりたいならinterpreterパターンで。
402 名前:ホスプロ ◆HOTsoUpxjY mailto:sage [2006/05/24(水) 00:23:27 ID:Dd1350vL] あ、HSP3だと連想配列できるんだった。 a(testval)=123:if a(testvar)=123:mes "a"
403 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 01:56:40 ID:lPK/et8b] クラスも無いHSPでインタプリタパターン?アホか。 インタプリタパターンがどんなものかも分かってない低脳が知ったかかよ。 笑えるw
404 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 19:37:22 ID:8XIyjfCU] >>402 >a(testval)=123:if a(testvar)=123:mes "a" それは笑うところ?
405 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 19:59:38 ID:pl7huDAQ] HSP3の連想配列ってどうやって使うの ヘルプに載ってないし… 単に a("test")=10 などとしてもエラーになるだけだし。
406 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 20:48:21 ID:zlyvM6ck] >>405 未実装だ。HSP3公開時に公式に載ってたぞたしか
407 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 21:20:01 ID:pl7huDAQ] HSP3には馴れてないからえっ連想配列使えるの?と >>394 用のサンプルを連想配列用に書き直したのに。 もう一回書くわ('A`)
408 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 22:22:38 ID:pl7huDAQ] condition charaLP,<,100 --------------------- *命令処理ルーチン ;notegetとgetstrを駆使して、命令名と引数を分解。 ;変数funcに命令名を、変数p1〜に引数を格納 if func="message" :gosub *message if func="condition" :gosub *condition : return --------------------- *condition *@b if p1="charaLP" :i=charaLP ;ゲーム内の変数分だけ用意する if p1="charaMP" :i=charaMP if p1="sys_time" :i=sys_time : c_val=0 :x=0+p3 if p2=">" :c_val=i>x if p2="<" :c_val=i<x : if c_val=0 :return ;最終的にc_valが1なら成り立つ ;if p4!="" :p1=p4: p2=p5: p3=p6: goto *@back でもう一回条件判断 return 成り立たなかったら、 シナリオ行を+=1し、飛ばすなり何なり汁
409 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 23:42:34 ID:YrDohqbw] ホスプロはNG推奨だなこりゃ
410 名前:名前は開発中のものです。 mailto:sage [2006/05/24(水) 23:53:18 ID:Dtzdxlr4] if文を羅列するよりは、 "message" → cmd=1 "condition" → cmd=2 といった感じに、前処理で命令と引数を整数化して on cmd goto 〜 で処理するほうが良いかと。
411 名前:名前は開発中のものです。 mailto:sage [2006/05/25(木) 22:58:38 ID:DTI3us1a] レーザー表示テストの者です。飽きずにまだいじってます。 先月末にupして見てもらったものは、 何時間動かしてもOS停止には至らず、結局、原因が掴めなかったため あやしそうな部分を探して、見込みで修正してみました。 そのほか、動作環境を限定するかもしれない追加や変更が いくつか加わりましたので、動作確認におつきあいいただける方、 よろしくお願いします。また不具合ありましたら、お教えください。 exxq.hp.infoseek.co.jp/lab/IBss20060525.jpg exxq.hp.infoseek.co.jp/lab/iyabomb_060525a.zip いま少し話題になってるようなことも、いくらか取り入れております。
412 名前:394 mailto:sage [2006/05/25(木) 23:14:40 ID:c1auN3wV] やっと来れました(´Д`;) >>408 をを、わざわざソース有難うございます。 >>410 アドバイス有難うございます。 ちょっくらデータを整えて、やってみたいと思います。 他の皆様も、いろいろ有難うございました。 やってみたらまた顔出します。
413 名前:411 mailto:sage [2006/05/25(木) 23:51:16 ID:DTI3us1a] すみません。23:36以前のexeファイルはボス撃破後にデータ不足で エラー終了してしまいます。 タイムスタンプが23:37以降ならば修正版です。
414 名前:名前は開発中のものです。 mailto:sage [2006/05/26(金) 00:43:09 ID:untIOqVh] 中間コード ( #define CMD_MESSAGE 1 if func="message" :cmd=CMD_MESSAGE など ) を作ろうと思ったら文字列比較は結局必要になるよ。 そのほうがオリジナルスクリプト上では messageはmessageのままで良いので可読性も上がる。 STG程スピードを要求しないなら文字列比較のままでも良いけど。
415 名前:名前は開発中のものです。 mailto:sage [2006/05/26(金) 03:37:37 ID:oDpShfW3] ;---準備段階 sdim funcstr , 3000 funcstr="nop______message__conditionif_______go_______to_______goto_____gosub____" ;(この場合、命令名の最長文字数が 9なので、他の命令の並びもそれに合わせる) ;(html中だと半角スペースが飛ぶので、代わりに'_'で埋めてあります。) ;---デコード func="goto" cmd=instr( funcstr , 0 , func ) / 9 mes "\""+func+"\" → "+cmd /* データを作成する人間が、命令名を正しく入力しなければいけなかったり、 "goto"に対する"go","to"のように、重複する文字列を含む場合、 funcstr中での並びに気をつけないといけない、などの前提がありますが 自分は、おおむね上記のような方法で数値にしています。 funcstr文字列の長さが短いほうが数値化する速度もあがるとみて、 各命令名を1〜3文字で済ませていますが。*/
416 名前:名前は開発中のものです。 mailto:sage [2006/05/26(金) 06:48:29 ID:onhecYlx] トークンの取得はCOMから正規表現使うと楽かも。 comtest8.hsp参照。
417 名前:名前は開発中のものです。 mailto:sage [2006/05/27(土) 13:47:27 ID:sKWqmida] HSP以外でやった方が楽かも
418 名前:名前は開発中のものです。 mailto:sage [2006/05/27(土) 14:56:48 ID:rRWFZuhB] >>417 それを言ったらおしまいだお
419 名前:名前は開発中のものです。 mailto:sage [2006/05/28(日) 10:16:28 ID:KPT5N766] MMORPGみたいに3Dゲームでマウスクリックでキャラ移動ができるようにする講座載せてるサイトとかありませんかね。 参考にできるならHSPでなくてもいいんですが。
420 名前:名前は開発中のものです。 [2006/05/28(日) 22:13:18 ID:KJFlJ4UI] 最近HSPを始めてみてスロットを作ろうと思ったのですが、行き詰まってしまったので 質問させていただきます。 ←↓→をおして1ラインのスロットを作ってみたのですが、3つとも停止しているのか いたら当たり判定へ飛ぶというところで行き詰まってしまいました。 よろしければヒントかなにか教えてください。
421 名前:名前は開発中のものです。 mailto:sage [2006/05/28(日) 22:55:23 ID:Z+CCHXYA] 左から、一つずつ、止まる仕様にしなさい。 そうすれば左から一つずつ処理して、残った分は、まだ止まってないって処理だけですむ。 一番簡単にするならこんなところかと。 それ以外はどれから止めるのか、で、個々に処理を分岐させていくようにルーチンプログラムを組むとか。 手間だけどw
422 名前:名前は開発中のものです。 mailto:sage [2006/05/28(日) 23:03:20 ID:pQPkynbl] >420 当たり判定が全てとまった時のみなら スロットを回した瞬間にrool=3 一つ止めるごとにroll-- rool=0の場合スロットが停止状態だから判定でいいんじゃないか?
423 名前:422 mailto:sage [2006/05/28(日) 23:05:06 ID:pQPkynbl] >422はスペルミスってるけどいじる変数は全部一緒ね
424 名前:名前は開発中のものです。 mailto:sage [2006/05/28(日) 23:26:30 ID:KJFlJ4UI] >>421 左から順押しは作れたのですが、ばらばらに押しても止めれるように できるやつを今作ってみています。 *start if st(0)=st(1) & st(2)=-99:goto *owari これが終わりへ飛ぶ処理 onkey gosub *inkey cls 0 for s,0,3,1 if cou(s)>9 :cou(s)=0 next font "MS ゴシック",70 pos 80,50:mes a(cou(0)) pos 180,50:mes b(cou(1)) pos 280,50:mes c(cou(2)) for s,0,3,1 if st(s)=-99:sp++:else:cou(s)++ next for s,03,1 if st(s)=-99:s wait 30 goto *start *inkey if iparam=49:st(0)=-99 if iparam=50:st(1)=-99 if iparam=51:st(2)=-99 return 2行目のやつを考えてみたのですけどもなかなか上手くいきません。 >>422 それでちょっと考えてみます。
425 名前:名前は開発中のものです。 mailto:sage [2006/05/28(日) 23:29:06 ID:KJFlJ4UI] 追記で a,b,cは1〜10のランダムの数字を入れて couっての要素番号です
426 名前:420 mailto:sage [2006/05/29(月) 00:08:36 ID:6gBWhafZ] 自己解決しました。板汚しすみませんでした
427 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 00:42:52 ID:37tC2HAP] 0=0 & -99=-99 でも終了って事に気づいたか iparamとwparamの違いも >font
428 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 00:45:09 ID:37tC2HAP] 聞き込みが途中で切れてる・・・ >font "MS ゴシック",70 これは最初に設定すればいい >onkey gosub *inkey メインループ前に一回実行するもの ここでは、キー入力を見てない その後のawait,stopでキーを見てる
429 名前:420 mailto:sage [2006/05/29(月) 00:54:36 ID:6gBWhafZ] できたとおもっていましたができていませんでした^^; f st(0)=-99 & st(1)=-99 & st(2)=-99 って風にしてできたと思ったんですけど無理でした・・・。
430 名前:名前は開発中のものです。 [2006/05/29(月) 01:09:48 ID:zRSJKdB1] 少しスレ違いかも知れませんが質問させてください。 今現在、HSPは特にゲームメーカーなどでプログラムとして使われて いるのでしょうか? それとも個人単位での作成範囲で留まっているのが現状でしょうか? なぜこれを聞いたかというと当方はVBでプログラムを初めて1〜2年は 修学して簡単なツールまで作れるようになったのですが間を開けて グラフィックの方に力を付けてきて今年になってHSP3.0の存在を知りHSPのゲーム作りには 特に短期でも仕上げれる特徴に魅力を感じVBを捨ててHSPを本格的に勉強し将来は職業でも 役に立ちたいと思っているので質問しました。長文ですが宜しくお願いします。
431 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 01:45:04 ID:iN1PFDnA] >>430 HSP3は2.6までのプラグイン大部分が使えなくなった関係もありまだまだ普及途中な感じ。 仮想配列も未実装だしな >>402 HSP2.6でも趣味や同人のみでの範囲。 こういうのは就職には何の役にも立たんよ。 ツールが主ならVBの方が遥かにマシだし短期に仕上がるはず。 VB以上のモノに躊躇していたんでは職業プログラマには向いてないかも知れないし そもそもプログラマなんて好きこのんでやる仕事では…('A`)
432 名前:某作者 mailto:sage [2006/05/29(月) 01:57:44 ID:KfyOoN0T] >>420 まず状態フラグを以下の4つ作ります。 Flag1:左リールの状態 Flag2:中リールの状態 Flag3:右リールの状態 Flag4:ゲームの状態 1〜3は言わずもがななので言いませんが キモはFlag4にあります。 例えば、リールの回転開始時(1ゲーム開始時)に4をセット。 リールを止める毎に-1していくと全リール停止時には1になります。 そこで、メインループの中にでも if Flag4=1{ ここに全リール停止時に一回だけ実行したいコード Flag4=0 } とかってやると、全リール停止後一回だけ実行されるのでオススメ? 停止順にも左右されないし。 奥さん!どうですか? >>430 職業としてプログラミングをするのであれば HSPとかVBなんて何のハッタリにもなりません。 ただ、VCもそうですが プログラムというものの勉強にはなります。 作り方とか流れとかですかね。 どっち方面のプログラマになりたいのか分からないので オススメはコレってのは言えませんが やって無駄になるものでもないので 適当に遊んでみると良いカモ。
433 名前:名前は開発中のものです。 [2006/05/29(月) 03:54:45 ID:fslpirHT] >>430 某大学で用いられているという話はありますよ。 案外これから普及していくかもしれません。 ただ、C言語から作られているのでCを超える事は出来ないそうです。
434 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 04:16:24 ID:37tC2HAP] >>426 そこはあってる font "MS ゴシック",70:dim st,10:dim cou,10 *start2 onkey gosub *inkey for s,0,10,1:a(s)=rnd(10):b(s)=rnd(10):c(s)=rnd(10):next *start if st(0)=-99 & st(1)=-99 & st(2)=-99:goto *owari cls 0 for s,0,3,1 if cou(s)>9 :cou(s)=0 next pos 80,50:mes a(cou(0)) pos 180,50:mes b(cou(1)) pos 280,50:mes c(cou(2)) for s,0,3,1 if st(s)=-99:sp++:else:cou(s)++ next wait 30 goto *start *inkey if iparam=49:st(0)=-99 if iparam=50:st(1)=-99 if iparam=51:st(2)=-99 return *owari for s,0,3,1:st(s)=0:next onkey 0:wait 100:onkey goto *start2 stop 一定の速度を保ちたいならonkeyは使わない方がいいかも、押されたら残りwaitが無視されるから
435 名前:名前は開発中のものです。 [2006/05/29(月) 14:45:27 ID:mlmmeZsG] >>419 つ本屋を散策
436 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 15:47:14 ID:7r+bTq3U] >>411 何か爽快感あって面白いな すげー
437 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 16:23:41 ID:OGKd9cQ0] >>411 おもしろすぎた
438 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 18:02:05 ID:zP12sAa8] >>430 同人では結構あるみたいだけどメーカーが使うなんてありえない。だってフリーソフトだぜ? バグがあってもその製品のせいにされちゃう。原因を調べてHSPあるいはプラグインのせい だと分かっても直せとは言えない。それに、メーカーは実行速度のテストとかするんだぜ? なんでCとかでできるものを、わざわざインタープリタのHSPでやるんだよ。 あと、HSPってプロが使おうと思ったらやってられねえよ。 2.61:固定少数、演算子の優先順位なし 3:実数を整数より左に書かなくちゃいけないという変な仕様、if key&4!=0〜 ←バグる dim a(10,10):a(0,0)=1.23 ←バグる ぜひ面接で「使える言語は?」って聞かれて「HSPです」って答えてどうなったか報告して ほしい。
439 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 18:18:00 ID:L4PQZedp] もともとHSPはWINDOWS用のフリーの開発言語としてすごい存在感があった。 2000年ごろまではフリーのBCCも無かったし、C#も。 フリーのゲーム開発用言語は日本語が使いにくいGCCか、HSPも含むいくつかの スクリプト言語しか選択肢がなかった。 でも内部でdirectxとかウインドウズの機能呼び出して、プログラムは スクリプト解析の部分だけなのにMicorsoftに怒られないんかなとか 昔から疑問だった。 C#がずっと商用でHSPがC#並みの強力な言語体系を身につけたらどうなったかしらんけど。
440 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 18:23:49 ID:iN1PFDnA] >>438 優先順位とちゃうの if (key&4)!=0〜 実数の配列はこれ ddim > 実数を整数より左に書かなくちゃいけない 詳しく
441 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 19:31:05 ID:mZy4WId+] プロが仕事で使うことはないだろうけど 趣味でなら使ってるかもしれんぞ
442 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 19:31:59 ID:U5ucYwSu] >でも内部でdirectxとかウインドウズの機能呼び出して、プログラムは >スクリプト解析の部分だけなのにMicorsoftに怒られないんかなとか これはまた香ばしい釣りですね。
443 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 19:35:27 ID:mZy4WId+] DirectXを使うのがなぜいけなのかな?
444 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 20:07:36 ID:iN1PFDnA] 似たような問題無かったっけ…GIFとか
445 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 21:40:11 ID:zEiBbzn5] >438 なるほど。桁数の大きい入れ物が左側になきゃいけないって ことでしょう。cだと左辺に合わせられるみたい。 double d=1.1234567; double d2=0.0; int i=10; d2 = i + d; printf("%f\n",d2); 実行結果は11.123457になる。 HSP3は本当は結果を入れる変数に合わせて計算のワークエリアを とればいいんだろうけど、計算式で最初に見つけた変数に 型を合わせちゃうんでしょう。だから小さい入れ物が最初に出てくると、 あとはそれに合わせて丸められてしまうと。 cでも左辺の型に合わせるっていま試してみるまで知らなかった。 HSP3でもこういう仕様だと理解すべきでしょう。
446 名前:名前は開発中のものです。 mailto:sage [2006/05/29(月) 23:32:03 ID:yl1v66tQ] >>441 フリーでやってる人が 仕事で使ってるってカキコをどっかで見たよ HSPでやった方が簡単な時だけだろうけどね
447 名前:411 [2006/05/30(火) 07:07:56 ID:wxU49lOI] >>436-437 動作確認ご協力ありがとうございます。 とりあえず動いているようで安心しました。 おそらく、ほとんどの人の場合、不具合が発生しても、 自分の環境のほうに問題があると考えてしまって、 報告をあげてもらうまでに至らないことが多いと思いますが、 不具合の報告をしてもらって、その原因が判明した場合は、 (>>318-322 のように)環境依存度の高い処理の情報を共有できる─などの、 有意義な展開が期待できますので、 不具合発生している方おられましたら、よろしくお願いします。 スキル・知識等の不足により、解決できない場合が多いかもしれませんが ;- -)
448 名前:430 [2006/05/30(火) 16:36:03 ID:7Q/mYcoo] 遅レスですが予想以上に数々の親炙な返事をありがとうございます。 みなさんの返事では職業的に使えるどうかは概ね厳しい意見なので、まずは 趣味範囲でもHSPを学んでいこうと思います。何よりコンテストやユーザー同士の 情報交換がプログラムでここまで分かりやすく多種多様活性化しているのは 稀なので励みになります。では
449 名前:名前は開発中のものです。 mailto:sage [2006/05/30(火) 22:23:56 ID:eOXJS/M0] 知らない言語や開発環境の初心者向けサイトを 時々でいいから、見てみるといいかもね 趣味の範囲に限るんなら 何かに行き詰るまでHSPでいいと思うけど
450 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 01:00:06 ID:XX1BOmA9] >445 >cだと左辺に合わせられるみたい。 何言ってんだお前。 Cでは整数と浮動小数点数の四則演算は、整数が左辺、右辺どちらにあろうと、 整数が浮動小数点数に変換されて計算されるんだよ。 どんな実験したら左辺の型にあわせられるとかアホな結果を導き出せるんだよ。
451 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 01:32:05 ID:PVRo+RDd] 気になったんだが、HSPって優先順位無しにまだ左から順番に計算処理してんの? だとしたら、相当タコな仕様なんだが。
452 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 01:38:06 ID:Z8BdWCCn] >>451 HSP3から優先順位は付いた てか、括弧つければいいやん
453 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 01:52:55 ID:qtTLD7x5] 優先順位だの型混合計算だの そのへんはスキルや慣れでカバーできる部分だと思うがね。 ヘタレの泣き言にしか聞こえん
454 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 03:03:26 ID:d1R0EvRx] 整数+実数=整数とかになっちゃうのは、知ってれば対処はできるんだがちと不便な気がする
455 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 10:30:39 ID:P8cACyaX] >>445 450も書いてるけど、計算結果は左辺の型がどうこうで確定するわけじゃないぞ。 オペランドが一つ処理されるごとに型が決まるから、気をつけないと小数点切り捨てのバグに引っかかったりする。 そういうのを避けるのがキャスト演算子。HSPには無いのか? 使ってないから知らん。
456 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 12:01:14 ID:WqQOTRlj] とりあえずHSP3ならコレ使っとけ int(p1) double(p1) str(p1)
457 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 20:10:25 ID:mgayhzXX] 精度の高い型優先か左辺優先かなんて、ルールさえ知ってれば実装する上で 大して違わない気がするが、慣れていないと思わぬところで躓いたりするのかもね。 キャストで明示しなくても好きな型で取れるところなんか、HSP的で悪くないと思うが >>451 聞く前に仕様読めタコ
458 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 22:33:36 ID:PVRo+RDd] やだね:p
459 名前:名前は開発中のものです。 mailto:sage [2006/05/31(水) 23:16:32 ID:jxqwOhKt] >>453 HSPはヘタレのための言語ってのが唯一の売りだろうが。
460 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 00:02:31 ID:Lx/n1Dp1] 俺のようなプログラムがめんどくさいヘタレでもゲーム作れたからな。
461 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 05:23:22 ID:U34YlHZD] 俺のように毎回、数学赤点ギリギリでもゲームを作れたからな。
462 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 10:40:36 ID:61Vc1rIH] 移動すると向きも変わる自機を表示して、弾も出せるようになった 俺に現在立ちはだかる関門はマップチップ。 なんてややこしいんだ。まるでパズルだ。 これにドット単位のスクロールだの属性だのを組み合わせると 俺の脳のキャパシティを超えて理解不能に陥ってしまふ。
463 名前:名前は開発中のものです。 mailto:sage [2006/06/01(木) 23:35:43 ID:U62SfPat] おれも演算子の優先はたいした問題ではないと思うけど HSPなら a+b*c ですむが C言語なら (a+b)*c でカッコが必要になるときがある
464 名前:名前は開発中のものです。 mailto:sage [2006/06/02(金) 01:43:21 ID:qezTFEEp] >>463 (a+b)*cの演算結果を狙うんなら a+b*cなんて書き方は普通しない。 HSPで望みどおりの結果が得られるとしても そんな書き方は間違ってる。 と思うぞ。
465 名前:名前は開発中のものです。 mailto:sage [2006/06/02(金) 10:34:02 ID:aI2/bfnM] >>462 今の若いもんは。 昔はさあ、MSX2でドット単位のスクロールしてるゲーム見て「これって、どうやったらでき るんだろう」って思うわけだよ。今みたいにインターネットでちょちょい、と検索すればすぐ 分かる時代じゃないわけ。で、神保町の本屋街駆けずり回ってMSXテクニカルハンドブック 買うわけだよ。ドット単位のスクロールなんてマシン語(アセンブリ言語)使わなきゃできない んだよ。 それでも「どうしても俺もやりたい」って思わせてくれるいい時代じゃった。今PS2のゲーム 見て「俺でも努力すりゃこんなのが作れる!」って絶対思わないわけでしょ。 まあ、まずはマップチップの大きさでスクロールするところを脳内でシミュレートしてみ ればいいんではないかの。チップが16*16ドットだったら16ドット単位とか。それなら簡単 じゃろう?実際にプログラミングしてもいいし、ノートに落書きするのが一番いいのかな。 で、次にじゃあ1ドット、2ドット単位にスクロールするにはどうしたらいいのか考えてみれば いいんでないかの。
466 名前:名前は開発中のものです。 mailto:sage [2006/06/02(金) 23:13:42 ID:9sPWvHgq] 俺も昔ガキの頃ルーチンだけひたすら妄想してたんで HSPを知ったらすぐゲーム作れたよw
467 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 09:49:20 ID:hu8cDHI1] >>465 まあまあ。 キモチは分かるが今の若いモンに「テクニカルハンドブック」 なんて言ってもわからんですよ。 確かにテクハン、スバラシイけどね。
468 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 10:07:02 ID:Z4maWD4U] つうか、お前年寄りの癖にまだHSPなんか使ってるのかよ。 まったく今の古いモンは・・・
469 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 10:48:04 ID:wn0K32Pk] PC買ったばかりの初心者だろうが プロのプログラマだろうが HSPを使って悪いことなどない
470 名前:ソニーのMSX2持ってたよ [2006/06/03(土) 12:35:56 ID:/9SUc/1Y] ログオン時にHSPエラー3 ってのが出るんですが、 最近入れたのは Avast! と Xguard ってセキュだけで どちらも関係ないみたいなのですが、 何か確認するところとかありますか?
471 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 13:20:14 ID:92xkB3SK] HSPは教育用言語としては最低のレベルだから プログラマとして生きていく気があるならオススメしない。 フリー・シェア問わず創作趣味な人が使う分には最適。
472 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 13:43:24 ID:Z4maWD4U] "最適"では無い
473 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 13:51:23 ID:wn0K32Pk] 反論するなら根拠も示さなきゃただの野次だ
474 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 16:04:41 ID:tw3JdCGI] ・タコな実数仕様 ・クソ重い処理速度 ・開発環境の使いづらさ ・構造体やクラスがない ミニゲームならともかく、公開するレベルのフリーウェア作る分には十分支障があります。はい。
475 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 17:10:03 ID:UBmsIVa6] HSPでつくられてる物しらみつぶしに探していって全部潰していけばいいんじゃね? HSPは糞だから公開すんな屑って。 そうすれば誰も文句も批判も言わなくなるんじゃね?平和でよさそうだ。
476 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 17:28:35 ID:jbJnRjlH] たぶん現状で一番2Dゲーが作りやすいのはJavaかな。 3DはVC+++DirectXが相変わらずの鉄板なんだろう。
477 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 18:03:35 ID:XbAQljIl] >>474 ・タコな実数仕様 そういうものだ ・クソ重い処理速度 ムーアの法則が解決w ・開発環境の使いづらさ これは認めよう ・構造体やクラスがない 贅沢言うなボケ 配列があれば十分だ >>476 # たぶん現状で一番2Dゲーが作りやすいのはJavaかな。 つHSPLet
478 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 18:37:40 ID:K0CLr+Rt] 処理が重いって 画像処理とか思考ルーチンとかせん限り十分だと思うが。 どーしてもしたいってヤシはそういった部分をDLL化するし、 運が良ければ目的のプラグインが公開されているのでそれを利用させてもらう。 > 公開するレベルのフリーウェア そもそも何を作ろうと思ったの? 超大作RPG?フォトショライクなグラフィックツール?
479 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 19:05:53 ID:tw3JdCGI] >>477 おいおい、HSPで一番致命的なのが構造体が無いことなんだぞ。 とっつきやすい言語仕様っていう利点なんかあっさり吹き飛ぶ。 俺もVBからHSPに乗り換えようとして、構造体が無いのを知って華麗にスルー。 今はBCCとDXライブラリでゲーム組んでるよ。 ついでに、ムーアの法則はすでに頭打ち。量子コンピュータでも実用化されりゃ別だけど、数年は無理だろう。 >>478 処理速度が遅いってのは、古いPCを考慮するときに問題になる。 いくら自分のPCがGHz級CPU詰んでるったって、エンドユーザーはMHzクラスかも知らんし。 ま、処理が遅いと「いかにして向上させるか」っていう勉強にはなるけど・・・ 普通にアクション系ゲーム作るなら、画面にオブジェクトとかポリゴンとか数千〜万単位で表示するから、 ループかませる時に処理速度が足りなくなってアウト。 5万ループ/frame(60FPS)で処理落ちじゃ話にならないよ。ソーティングでも厳しいことになる。 WindowsGUIベースのアプリならHSPが楽なのかも知れないけど(個人的には、それならVB使う)
480 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 19:11:08 ID:iOiUgZAq] >>479 > 俺もVBからHSPに乗り換えようとして、構造体が無いのを知って華麗にスルー。 > 今はBCCとDXライブラリでゲーム組んでるよ。 前々から疑問に思ってたんだけど、なんでそういう人間がこのスレ見てるんだろうか。 ”華麗にスルー”しきれてないじゃん。
481 名前:名前は開発中のものです。 mailto:sage [2006/06/03(土) 19:14:24 ID:tw3JdCGI] 別にHSPに限らず、言語系スレは一通り見てるから。