[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 06/28 17:07 / Filesize : 270 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

HSP - Hot Soup Processor [11]



1 名前:名前は開発中のものです。 mailto:sage [2006/03/24(金) 18:31:39 ID:jNg23CIj]
       (  ,,,)
        .(  ,,)      スクリプト言語 HotSoupProcessor について
        ( ,,).        ゲーム製作の視点から、また〜りと語り合うスレ。
     , -──- 、
    (,;::-──-; )-、
     .|` ̄ ̄ ̄´;;|ヽ l   * 質問する前に検索してみる事
     l;    :::;;;l-' /   * ヲチ、ネタなどはスレ違い
    ,-ヽ───.'-、´..   * 歴代スレ、関連サイトは >>2-4 あたり
    ヽ ──── '

  ONION software (本家)
   www.onionsoft.net/

374 名前:名前は開発中のものです。 mailto:sage [2006/05/09(火) 21:39:45 ID:N1aA8dwP]
だな。取敢えず、作った実行ファイルと同じフォルダにDLLをコピーしてみそ。>372

375 名前:名前は開発中のものです。 mailto:sage [2006/05/10(水) 00:26:47 ID:C86KZ1rA]
>>371ですが実際hmm.dllを試してみたところ本当に期待通りの効果をあげることができました。どうもありがとうございました。

376 名前:名前は開発中のものです。 mailto:sage [2006/05/12(金) 12:42:52 ID:lpPbttQ8]
>>373
>>374
レス遅れて申し訳ありません。
dsoundex.hpiも必要だったんですね。
ありがとうございました。

377 名前:名前は開発中のものです。 [2006/05/13(土) 00:38:25 ID:/E17UIpq]
Ver2.61で「複数のテキストファイルをexeに組み込むと繋がっちゃう」不具合は修正されていますか?

378 名前:名前は開発中のものです。 mailto:sage [2006/05/13(土) 12:19:38 ID:U+Cj0aWf]
>>377
知るか

379 名前:名前は開発中のものです。 mailto:sage [2006/05/13(土) 12:59:39 ID:8VtsEFGN]
>>377
以前のバージョンの話は知らんが、少なくとも261では繋がらんぞ?
つーか、んなの聞くより自分で確かめた方が早いだろ

380 名前:名前は開発中のものです。 mailto:sage [2006/05/13(土) 16:27:37 ID:0+OIs3vl]
>>377
もういりませんって言ってるだろ。いい加減にしろ

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]
・タコな実数仕様
・クソ重い処理速度
・開発環境の使いづらさ
・構造体やクラスがない

ミニゲームならともかく、公開するレベルのフリーウェア作る分には十分支障があります。はい。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef