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


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

HSP - Hot Soup Processor [15]



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

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

30 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 00:19:00 ID:yATq3pxp]
まあまあ。
確かに"教科書"、"マニュアル"を、腰を落ち着けて端から端までしっかり読むのが原則と言えば
原則なんだけど、
写真だの図だのキャッチーなサンプルゲームだのが付いた"参考書"の方がとっかかりとしては
とっつきやすい人もいるんだから。


31 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 11:29:58 ID:EqCcis52]
更新キテタ

32 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 12:22:03 ID:DGgDrqAJ]
待ってたぜ!

33 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 12:40:45 ID:+PSB5x3Y]
>>29
初心者な自分は()の使い方とか文字列変数の比較は""使わなきゃいけないとか、
わからなかった。
今でも文字列変数はよくわからない。
2.61で、「〜が含まれる時」「〜が含まれない時」ってある?

34 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 13:15:39 ID:DGgDrqAJ]
とりあえず2.61見てみようと思ったら、全部消してたw

35 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 13:34:45 ID:6q00RRV1]
何事も経験・・・事実とは書物よりも奇なり
だからおもしろい

36 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 14:03:19 ID:+JVLUy/z]
β10・・・なんだよー
ラベル型まわりの機能が完成するのを待ってるのに
#deffunc引数のlabel指定とか、比較判定とか
まだ放置なのかよー


>>33
マッチ演算子のことなら、無い・・・・・・!
無いが・・・

2.61のinstr命令は
バッファから指定文字列を検索することができる

そのことを
どうか初心者君らも
思い出していただきたい

つまり・・・・
我々がその気になれば
#defineなり#defcfunc なりで
比較判定命令を定義することも
可能だろう・・・・・・・・・・ということ・・・・!

37 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 14:40:32 ID:D+T1yTCf]
バグfixがほとんどっぽ

38 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 18:59:12 ID:KoqKXay8]
バグだらけで使えない新機能が加えられるよりは善いことだな



39 名前:名前は開発中のものです。 mailto:sage [2007/06/09(土) 23:57:44 ID:6q00RRV1]
アナルに勃たないちんぽが入るよりは善いことだな

40 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 21:13:57 ID:b7luKUpv]
いや・・俺がわるかった・・・
話を続けてくれアナル

41 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 21:32:34 ID:vyhWc2Ca]
.asファイル…ってか今だと.hspファイルか。
これをpackファイルに入れずに実行ファイルを作ったら
ソフトに同梱した.asファイルを弄るだけで色んな動作を
させることができるソフトになって便利だぜ!

―って使い方を昔、自分でやってた気がする、もしくは聞いたことがある気がするが
数年前のことで忘れた。
無理だったっけ?
久しぶりに記憶を頼りにやってみたら
start.axだけpackファイルに含めて実行ファイルを作っても
#includeで連結した.asファイルの内容ですら反映されて
実行ファイル単体でも動作してしまう。

過去ワード検索してみても該当するのがみつけられんかったので
ボケ老人の夢かな

自分の夢が確かなら
メインのasファイルに#include "hoge.as"の一行だけ書いて
hoge.asにメインのコードをガリガリ書いて
実行ファイル作るときにhoge.asをpackしなければ
hoge.asを同梱しないと動作しない実行ファイルができあがった筈なんだが…

42 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 21:34:26 ID:b7luKUpv]
今試してみるアナル

43 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 21:41:42 ID:sxZB+lji]
>>41
hspcmp.dll 使うならまだしも無理だから
たしかに、hsp on hsp は便利そうだけどな


44 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 21:54:48 ID:vyhWc2Ca]
そうか。
夢だったか。thx
どこで記憶が捻じ曲がったのやら…

たぶん昔公式BBSであった
「.asファイルを入れなくてもstart.axをpackするだけで良い」
ってやりとりに衝撃を受けてからかも

入れないで良い=同梱.asファイルを後から編集できる

45 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 22:26:39 ID:8XobPWRt]
ボケ老人は run 命令のヘルプを見たら
記憶が戻るんじゃね?

46 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 22:29:35 ID:b7luKUpv]
>>45
戻らないと思う コムスンに頼まないとだめかもしれんね

47 名前:名前は開発中のものです。 mailto:sage [2007/06/10(日) 22:59:11 ID:vyhWc2Ca]
魚いっぱい食べてみる
というか記憶そのものが間違った内容だった

塗り絵してくる

48 名前:名前は開発中のものです。 mailto:sage [2007/06/12(火) 08:26:31 ID:FILJcuty]
庭の草取りがいいですよ



49 名前:名前は開発中のものです。 mailto:sage [2007/06/12(火) 18:04:52 ID:KRNdcmTx]
>>36
やっぱりありませんか。
回答ありがd

どうにか自分でがんばってみる。

50 名前:名前は開発中のものです。 mailto:sage [2007/06/12(火) 20:56:41 ID:JAHVP1Hw]
40  if (MAP.MPX0.MPY0=1)or(MAP.MPX1.MPY1=1) {
41   MDX=0 :MDY=0
42  }


というプログラムなのですが、実行すると
「#Error 7 in line 40 (a.hsp)
-->配列の要素が無効です」
と表示されます。
何がいけないのでしょうか?

51 名前:名前は開発中のものです。 [2007/06/12(火) 21:23:42 ID:MWBeX66r]
そのままの意味だろ?
確保した配列の要素越えてたら駄目だぞ
MPX0とか入ってる数値を表示させたりして確かめてみ


52 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 19:30:55 ID:Oujmb2sE]
>>51
よくわからないです。
プログラム自体は本に入っていたプログラムを丸写ししただけなので、問題は無いと思います。
具体的にどこをどう直せばよいか教えていただけませんか?

53 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 19:34:28 ID:Oujmb2sE]
ちなみにプログラムはこうなっています。
www.borujoa.org/upload/source/upload12298.txt
dim命令で確保した以上の要素は使っていないと思うのですが・・・。

54 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 19:56:33 ID:tG+9yLCM]
>>53
HSP 2.x用のスクリプトをHSP3で動かしてね?
あのへんを括弧でくくってこうしてみろ↓

MPX0=(MX+MDX)/32 :MPY0=(MY+MDY)/32
MPX1=(MX+MDX+31)/32 :MPY1=(MY+MDY+31)/32

55 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 19:57:24 ID:tG+9yLCM]
いやいや、 R=RND(5) とか書いてあるからHSP3用だな。

56 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 20:19:45 ID:Oujmb2sE]
>>54
できました!
ありがとうございます。

57 名前:名前は開発中のものです。 [2007/06/13(水) 20:50:23 ID:PevRBwEM]
>>52
>プログラム自体は本に入っていたプログラムを丸写ししただけなので、問題は無いと思います。
本に載ってるからって間違いが無いとは限らんぞ
元々2用にあったサンプルを3用に書き換えて
テストなしで掲載してるように見える・・・

>>53
>dim命令で確保した以上の要素は使っていないと思うのですが・・・。
だから表示して確かめろって言ってるだろ

58 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 21:46:16 ID:Oujmb2sE]
>>57
表示とはデバッグウィンドウの変数欄で確認するということでしょうか?
内容を見ても何がいけないのかよくわかりません。



59 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 21:52:50 ID:tG+9yLCM]
>>58
あんまりだな。生命の存在意義も、生きる意味も踏みにじっている。
エラー行の前で
title ""+MPX0+"/"+MPY0+"/"+MPX1+"/"+MPY1
とでもやってみろよ、全部224とか表示されてるぞ。

60 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 21:59:38 ID:Oujmb2sE]
>>59
32/64/32/56と表示されました。
具体的に、何がどうなると
>-->配列の要素が無効です
と表示されてしまうのでしょうか?

61 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 22:05:21 ID:tG+9yLCM]
>>60
ちょ
どの行でインターセプトしたらそんな値が出るんだ

まあ、どっちみち、dim MAP,16,16 の範囲超えてると感じないか? 算数的に

62 名前:名前は開発中のものです。 [2007/06/13(水) 22:51:31 ID:PevRBwEM]
>表示とはデバッグウィンドウの変数欄で確認するということでしょうか?
まぁ、エラー出てる時とかならそれでも良いけど・・・
mesの使い方も知らないでいきなり仮想マップ使って判定とかやってるのか・・・

>>60
61も言ってるけど各要素16個しか確保してないだろ?
要素の数え方は0からだから最高15になる
これを越えたら
>-->配列の要素が無効です
ってなる(代入時は事情が違う場合があるが)
だからMPX0とかの中身を表示させて超えてないか見ろって言ってたの
(最初に出してきたスクリプトにはMPX0に何が入るかなんてこっちには分からない)
なのに確認もしないで
>dim命令で確保した以上の要素は使っていないと思うのですが・・・。
とか言うなっつーの(結局計算式の問題で超えてただろ)

もしかして、MPX0.MPY0が要素数に使われてるのも分かって無かった?


MPX0=MX+MDX/32
MPX0=(MX+MDX)/32
これの違いと、何で下のにしたら直ったかの理由は分かってる?

>>61
>どの行でインターセプトしたらそんな値が出るんだ
わかんねw
修正後でも修正前でも出ない気がするw


63 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 23:36:56 ID:2Tk87HMR]
ここまで話が通じないと釣りか?って思うなw

64 名前:名前は開発中のものです。 mailto:sage [2007/06/13(水) 23:49:57 ID:AtNkIAc/]
ゲーム製作以前の問題だぜ。

なんだっけ

〜〜ってレベルじゃねーぞ!! か

65 名前:名前は開発中のものです。 [2007/06/14(木) 08:13:51 ID:+1x8xWif]
HSP3.0用のDLLの作り方と呼び出し方を解説したサイトを教えてください。

66 名前:名前は開発中のものです。 mailto:sage [2007/06/14(木) 09:19:31 ID:lRwHs4am]
HSP-SDK見ればつくれる
C++分からないとか設定の仕方分からない場合はC++自体学んでください

VS2005EEインストール→新規プロジェクト→HSP-SDKをインクルド→コード記述
コンパイル設定→コード生成→DLL→releseビルド→おk

67 名前:名前は開発中のものです。 mailto:sage [2007/06/14(木) 15:28:43 ID:wjp8uCfZ]
>>62
なるほど、ようやく理解できました。

>MPX0=MX+MDX/32
>MPX0=(MX+MDX)/32
>これの違いと、何で下のにしたら直ったかの理由は分かってる?
前者だとMX+(MDX/32)になってしまうからですよね?

68 名前:名前は開発中のものです。 mailto:sage [2007/06/14(木) 21:28:27 ID:79qMipSC]
HSP2だと加減乗除の優先順位がおかしかったから、
サンプルプログラムとかは常に注意しる。



69 名前:名前は開発中のものです。 [2007/06/14(木) 22:36:32 ID:TC4LCN2u]
>>67
>前者だとMX+(MDX/32)になってしまうからですよね?
そう
HSP2だと左から順に計算されるから MX+MDX/32 でよかった
でも、HSP3からは演算子の優先順位が出来たから (MX+MDX)/32 にしないと駄目
だから本に載ってるのは中途半端にHSP3用に書き直してるみたいだから
間違いは無いと思い込まない方がいい

後、配列変数の書式を MAP.MPX0.MPY0 みたいのから
map(MPX0,MPY0) 見たいに添え字を()で囲うように全部直した方がいいかもしれない


70 名前:名前は開発中のものです。 mailto:sage [2007/06/15(金) 19:57:38 ID:4KhtVqY6]
添え字は好みもあると思うけどな。HSP3の添え字書式は関数と区別がつかないので見にくい。
せめて map(MPX0)(MPY0) みたいな書式だったらマシだったのに

71 名前:名前は開発中のものです。 [2007/06/15(金) 21:06:45 ID:whR71zbQ]
>添え字は好みもあると思うけどな。
HSP3を使うなら()を使った方がいいと思うけどな

dim a,10,10
a(5,5)=10
mes a(5,5)
mes (a.2+3.5) //a(2)+3 になってしまう
mes (a.(2+3).5) //()で囲えば大丈夫だが
//mes (a.5.(2+3)) //これはエラーになる

こんな違いがあるから俺は()を使う

72 名前:名前は開発中のものです。 mailto:sage [2007/06/15(金) 21:46:50 ID:4KhtVqY6]
>>71
> mes (a.(2+3).5) //()で囲えば大丈夫だが
ちょw
それ通るのか、知らんかった

> //mes (a.5.(2+3)) //これはエラーになる
ちょww
HSPの実装マジマジカルw

73 名前:名前は開発中のものです。 mailto:sage [2007/06/15(金) 23:32:13 ID:pYMEFYPq]
HSPは、basic とマクロアセンブラを足して2で割ったようなものだから。


74 名前:名前は開発中のものです。 [2007/06/15(金) 23:39:00 ID:LEH0ullt]
>それ通るのか、知らんかった
HSP2じゃ使えなかったらしいな

>HSPの実装マジマジカルw
でも
a.5=10
mes a.(2+3)
これはエラーにならないと言う不思議w


75 名前:名前は開発中のものです。 [2007/06/17(日) 22:36:56 ID:Edsb0W6a]
シューティング作成中だが、さっぱりわかんねえオワタ

76 名前:名前は開発中のものです。 mailto:sage [2007/06/18(月) 01:36:54 ID:xgVDamP4]
同じくシューティング作ってる

敵や弾をすべてモジュール化して、毎フレームごとすべてをforeachで回してヒット判定とかしてるんだけど

これはもしかして無駄っつかアホ?

77 名前:名前は開発中のものです。 mailto:sage [2007/06/18(月) 01:46:46 ID:HhkeL6Nb]
>>76
オレならそんな無駄は避けるが
それで自分で満足のいくゲーム速度が出るなら、いいんじゃね?

78 名前:名前は開発中のものです。 mailto:sage [2007/06/18(月) 02:28:37 ID:fz3qoeQP]
出来る限りプラグインに丸投げしたほうが速いぞ。



79 名前:名前は開発中のものです。 mailto:sage [2007/06/19(火) 07:18:15 ID:kYyyrLp0]
公式掲示板の連中はなんなんだ
HSPも笑えないほどユーザーレベル下がったよな

最近、古参が全く出てこなくなっちゃって
HSPdevも参加者減ってるのに糞ユーザーは要望・知ったかぶりばっか
オフでおにたまが微妙な発言したし

HSPも長くないかもしれない
すごくいいプログラム環境だったのに・・・糞ユーザー氏ねよ
とくにKENTAとか不如帰とかよぉ マジで空気嫁よ

80 名前:名前は開発中のものです。 [2007/06/19(火) 07:37:27 ID:CcZ9v5nt]
>>79
気持ち悪い

81 名前:おにたま mailto:sage [2007/06/19(火) 09:04:32 ID:Q3zYXdiI]
ひさーしぶりにここ見にきてみた。お前ら相変わらずだな。ごちゃごちゃ言ってねえで
さっさと自分好みの言語作ってみろやボケが。おまえらの言語がすばらしかったらそれ
でHSP4作ってやんよ。

82 名前:名前は開発中のものです。 mailto:sage [2007/06/19(火) 10:09:38 ID:SXhP1T/T]
おばか降臨

83 名前:名前は開発中のものです。 mailto:sage [2007/06/19(火) 14:58:53 ID:MSSC2J5g]
>>79
公式掲示板のくだらないやりとりの部分(悪い部分)だけとって見れば、
そんなネガティブな印象になるのも無理はないが。
わりと知られてるHSP製ゲームやソフトの作者たちは、公式掲示板には現れてないし、
2003年からのコンテスト作品をざっと見るだけでも、レベルが下がっているとは思えないんだが

あの手合いの連中でも使えるくらいに使いやすくなったってことじゃないのかね

84 名前:名前は開発中のものです。 mailto:sage [2007/06/19(火) 16:36:57 ID:HqFeiaNi]
今年もコンテストやるなら、出場してみっか!

85 名前:名前は開発中のものです。 mailto:sage [2007/06/19(火) 19:09:19 ID:qlsq7SL3]
>>83
>公式掲示板には現れてないし
というか、もうあんまりな状況で現れづらくなったんじゃないか。
とくに、あの新しい動物掲示板は何だよ。動物園か? (いろんな意味で)

86 名前:名前は開発中のものです。 mailto:sage [2007/06/21(木) 14:49:40 ID:UAkzoNGc]
新しいサイトと掲示板は見辛いし、使いづらい。
正直見る気がしない。
流行りだからといって、アフィリエイトblog風にすればいいってものじゃない。
やたら縦に長いし。
以前のほうがすっきりしてて見やすかった。

87 名前:名前は開発中のものです。 mailto:sage [2007/06/21(木) 17:48:32 ID:vclqLVz6]
HSP3.0b10からコンパイラ自由配布になったね

コンパイル対象がファイルじゃなくてバッファも指定できるといいな
そしたらモジュールもプラグインみたくコードを見られずに機能提供できるんだが

これでネイティブコード吐き出させたら最強だな

88 名前:名前は開発中のものです。 [2007/06/21(木) 18:46:35 ID:mdAvpvKw]
>>87
>そしたらモジュールもプラグインみたくコードを見られずに機能提供できるんだが
アホじゃねーの
用途に応じて改良できないモジュールなんて価値ねーよ




89 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 06:56:47 ID:FNJlhwGp]
>>87
> HSP3.0b10からコンパイラ自由配布になったね
「準備を進めています」と書いてあるから、まだなんじゃね?

90 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 13:06:49 ID:1z4MoKp4]
> ・HSP3ライセンスについて(β10)
>
> HSP3.1のリリースに向けて、いくつかのライセンス項目を修正する方向で準備を
> 進めています。ライセンス変更の主な事項は、以下の通りです。
>
>
>        ・HSPランタイム、コードジェネレーターを他のアプリケーション及び
>        システムに組み込み可能な形に変更
>        (ただし、HSPそのものを有償配布することは不可)
>        ・これまで再配布禁止だったhspcmp.dllを自由に配布可能に変更
>        ・同梱されているシステムマニュアル・サンプル、ドキュメント類、
>        及びプラグインをフリー(BSDライセンス)で提供する形に変更
>
> また、HSPコア部分のランタイム、コードジェネレーター、中間言語仕様を
> ソースコードも含めてOpenHSPとして公開できるよう準備をしています。

91 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 19:31:38 ID:zyQn23/x]
>>90
コア部公開したら逆コンパイラが出回るな
人生オワタ

92 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 19:41:57 ID:uMhY8/gp]
人生安っぽすw
逆コンしやすいJavaのユーザーなんかみんな死んでるな

93 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 19:48:14 ID:jubO/TzM]
つーか、そこまで隠蔽したがる奴がわからんが。
不正に他人のコード流用でもしてんのか?w

94 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 20:48:27 ID:1z4MoKp4]
ソース公開でHSPtoCコンバータみたいなの出てくるとおもう
おにたまさんもいつまでも出来るわけじゃないから良い流れではあるとおもう


95 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 21:56:39 ID:mMz9DQRk]
標準命令だけでスクロールバーを付けて、テキストをスクロールさせるにはどうすればいいでしょうか?

96 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 22:47:31 ID:/onSE/9n]
もうやる気なくなってるとかか?

97 名前:名前は開発中のものです。 [2007/06/22(金) 22:57:03 ID:CBh41taG]
>>95
テキストって何で表示させてるテキストだ?

98 名前:名前は開発中のものです。 mailto:sage [2007/06/22(金) 23:36:24 ID:UBXd9/qn]
>>91
実はもう逆コンパイラ有ったりしてw
少なくとも漏れ以外にhspletの作者は逆コンパイラを作ることができるな、うん



99 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 00:09:15 ID:Ag5WBKuA]
hspletは暗号化DPMを読んだりはしないが

100 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 00:58:19 ID:Vv4zbqST]
最強に極まってる俺には
他人のスクリプトを見る必要など無いわけだが

101 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 02:22:33 ID:mUPH0N6u]
なるほど

102 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 07:15:23 ID:OCNm4PKF]
>>95
mesboxのことか?

103 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 11:39:44 ID:a5M2brbh]
配列変数の要素の数が不定なプログラムを組んでいるのですが、
その配列変数の要素をすべて掛け算するにはどうすればいいのでしょうか?
たとえば、A(1)〜A(5)の配列変数にはそれぞれ2が入っていて、それらをすべて掛け算すると32になりますよね?
そういった計算を要素の数が不定な配列変数でも行いたいのですが、可能ですか?

104 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 12:06:11 ID:ngSwrVIN]
>>103

Palam=0 ;積
count=0 ;カウンタ

repeat
//カウンタ回し
count+1

//空の時に*0で値が0になるのを防止。
if A(count)=0 : A(count)=1
if A(count+1)=0 : A(count+1)=1

//掛け算
Palam=A(count)*A(count+1)

//終了チェック
if count=length(A)-1 : break
loop

mes ""+Palam+""
stop

こんなもんか。テキトーだから微調整とか帳尻あわせは自分でやってくれ。
配列の要素数はlength関数で表せるよ。


105 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 13:29:23 ID:Ag5WBKuA]
>>104
0排除したら要求仕様と合わなくね?

i = 1
foreach a : i *= a.cnt : loop
mes i

でよし

106 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 15:05:04 ID:a5M2brbh]
>>104-105
ありがとうございます。
foreach命令は使ったことが無かったので、こんな便利な命令があると走りませんでした。
ちなみに
>i *= at.cnt
この部分はどういう意味ですか?
*は掛け算の記号ですよね?

107 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 15:08:57 ID:Ag5WBKuA]
複合代入でぐぐれ

108 名前:名前は開発中のものです。 mailto:sage [2007/06/23(土) 16:40:09 ID:f7has2CW]
ちなみに、HSPLetはforeachの動作がオリジナルと違うので
使う場合はdim n,5とかをforeachに指定して
エラーに悩むことが無いように注意しないといかんに



109 名前:名前は開発中のものです。 mailto:sagesugi [2007/06/23(土) 17:03:27 ID:tl3cwwx9]
p = 6
a.0 = 2
a.1 = 3
p *= a.0
mes p
p *= a.1
mes p

を実行汁

110 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 17:04:04 ID:pviiOgcx]
さっぱり原因がわからないので力をお貸しください。
hsp3を使っておりfpsを60に安定させるためのスクリプトを書いたのですがうまく動いてくれません。
hspdxfixを使用しes_screenでDirect3D描画をオンにすると次の更新時間に加算される値がおかしくなるのです。
本来は1000/60が加算される筈なのですが倍の32に近い数値が加算されてしまうようです。
Direct3Dを使わなければ問題なく動いてくれるのですがどこがおかしいのかさっぱり分かりません。

#include "hspdxfix.as"
////////////////////////////////////////
es_ini//初期化処理
es_screen 640, 480, 32, 0, 1, 1
if stat=1: dialog "DirectXの初期化に失敗しました",1: end
if stat=2: dialog "スクリーンの初期化に失敗しました",1: end
gsel 0: es_cls: es_sync: wait 50
onexit goto *gameend//終了ボタン時動作
////////////////////////////////////////
es_timer tm//経過時間取得
tmwait=1000.0/60//待ち時間代入
tmnxt=double(tm+tmwait)//次の更新時間

111 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 17:04:49 ID:pviiOgcx]
//--------------------------------------
repeat
getkey k_esc, 27//esc強制終了
if k_esc==1: goto *gameend
es_timer tm
if tm>=tmnxt: gosub *mainloop//メインループ
await 0
loop
//--------------------------------------
*gameend
es_bye: end
////////////////////////////////////////
*mainloop
es_getfps fps//fps取得
tmnxt+=tmwait//fps管理
//--------------------------------------
es_cls//裏画面
pos 0, 0
es_mes "fps="+fps, -2
pos 0, 16
es_mes "tm="+tm, -2
pos 0, 32
es_mes "tmnxt="+tmnxt, -2
pos 0, 48
es_mes "tmwait="+tmwait, -2
//--------------------------------------
es_sync 0
return

112 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 18:07:32 ID:ZU4NTMm1]
別にes_timerなんてややこしいことしなくても
repeat
es_sync 16 // ≒ 1000 / 60
await 0
loop

だけで60fpsになるはず。

repeat
es_cls
es_getfps fps
pos 0, 0
es_mes str(fps) + "fps."
es_sync 16
await 0
loop
とでもしてみ。

113 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 18:50:43 ID:pviiOgcx]
レスサンクス。
ただ少し説明が足りなかったみたいです。
112さんの方法ででうまくいくのは知っていました。
問題が解決しなかった場合はこの方法で行く予定です。
ただ今回教えてもらいたかった所はなぜDirect3Dを使うと値が変わってしまうのか、という所です。
112さんの方法で確かにfps部分はうまくいくと思います。
しかし今後スクリプトを書いていったときまた上と同じ現象が起こるかもしれません。
そういったことの回避、対処方法が知りたかったのです。

114 名前:名前は開発中のものです。 [2007/06/24(日) 20:15:51 ID:kA+DbItR]
理由は分からないが、実数の演算精度が変わっちゃうのが原因みたい
HSPの実数は64ビット(16桁ぐらい?)精度を保てるはずなのに
hspdxfixでD3Dを使うと16ビットぐらいに落ちる
(D3D使わなければHSPの実数精度と同じ)

だからタイマーの数値が大きくなると不安定になって
16.6足してはずなのに結果が全然違ったりする

tmwait=1000.0/60//待ち時間代入
tmnxt=double(tm+tmwait)//次の更新時間
↓ ↓ ↓
tmwait=(1000*1000)/60//待ち時間代入
tmnxt=tm*1000+tmwait//次の更新時間



if tm>=tmnxt: gosub *mainloop//メインループ
↓ ↓ ↓
if (tm*1000)>=tmnxt: gosub *mainloop//メインループ


みたいにして実数使わなければいい
(PCの電源切らない人も居るだろうからもうちょい工夫が必要だが)

これは使用なのかバグなのか不明
作者さんに報告した方がいいかもしれい
仕様ならtxtに書いといてもらった方がいいと思うし

115 名前:名前は開発中のものです。 [2007/06/24(日) 20:44:35 ID:kA+DbItR]
#include "hspdxfix.as"
tmwait=1000.0/60
es_ini
es_screen 640, 480, 16, 0, 1, 1
es_cls
tm=0
tmnxt=double(tm+tmwait)
repeat 20
tmnxt_=tmnxt
tmnxt=double(tmnxt+tmwait)
pos 0,cnt*16
es_mes str(tmnxt-tmnxt_)
loop

es_timer tm
tmnxt=double(tm+tmwait)
repeat 20
tmnxt_=tmnxt
tmnxt+tmwait
pos 100,cnt*16
es_mes str(tmnxt-tmnxt_)
loop
es_sync 0

自分所ではタイマーは432941777とかだから
tmwait足した後tmnxtの変化を見ると32になってる


116 名前:名前は開発中のものです。 [2007/06/24(日) 21:09:15 ID:kA+DbItR]
#include "hspdxfix.as"
a=987654000.000456789
b=987654000.000456789
a+321.123
es_ini
es_screen 640, 480, 16, 0, 1, 1
b+321.123
es_cls
es_mes strf("%10.10f",a)
pos 0,30
es_mes strf("%10.10f",b)
es_sync 0

この方が分かりやすいかな?
es_screen の前と後で実数演算精度が全然違ってる

117 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 21:50:28 ID:fXY/Kin5]
なんだそれ
fix入れてないんで数字見えんが、本当ならおかしな動作だ

118 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 22:06:28 ID:pviiOgcx]
レスサンクス。
確認してみました。
確かにDirect3Dを使うと実数の計算の精度がかなり違ってくるようですね。
基本的にPCは付けっぱなしなのでタイマーの数値が大きかったのが原因のようです。
ただ再起動したところで数時間もすればすぐに演算精度が変わってきそうだ。
と言うか>>116は分かりやすいですね、何でこんな値になるんだろう。
これはhspというよりhspdxfixの問題だから作者さんのbbsあたりに書いて置いた方がいいのかな。



119 名前:名前は開発中のものです。 [2007/06/24(日) 22:08:20 ID:ocRSH5bg]
>>117
どうもdxfixとは関係ないかもしれないw

#include "hgimg3.as"
a=987654000.000456789
b=987654000.000456789
a+321.123
hgini
b+321.123
setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode)
texload dir_exe+"\\sample\\hgimg3\\fontchr.bmp" ; フォントテクスチャの登録
hgdraw ; 描画
fprt strf("%10.10f",a),8,0
fprt strf("%10.10f",b),8,32
hgsync 10 ; 時間待ち

これでも精度が変わってたw
fvsetとかは32ビットの実数になってるのは知ってたけど
普通の計算も通常とは違ってるのは気が付かなかった・・・
(3.0aでしか試してないけど)


120 名前:名前は開発中のものです。 [2007/06/24(日) 22:15:28 ID:ocRSH5bg]
>>118
HSP3でD3Dを使うと実数の精度が変わるって事のような気がする
値としては64ビットを扱えるけど演算は32(16?)ビットみたいな・・・


121 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 22:31:42 ID:fXY/Kin5]
hginiだけで変わるな

#include "hgimg3.as"
a=0.1111111111111111
hgini
b=0.1111111111111111 / 1.0
mes strf("%.20f",a)
mes strf("%.20f",b)

代入までならいいけど、演算の精度はdoubleからfloat(32ビットだよ)に
変わってる。

これは変だ、あんまりだ

122 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 23:07:48 ID:fXY/Kin5]
こっちのでhginiの有無で動作を比べたほうがいいな。
#include "hgimg3.as"
hgini
a=0.1111111111111111
b=0.1111111111111111 + 0.0
mes strf("%.20f",a)
mes strf("%.20f",b)

123 名前:名前は開発中のものです。 mailto:sage [2007/06/24(日) 23:53:48 ID:pviiOgcx]
あらー、てことはhspでDirect3Dを使う限り実数の演算には気をつけたほうがいいみたいですね。
皆さん検証サンクス。

124 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 00:44:15 ID:hRvLfF9s]
外部プラグインによってはHSPコアの演算機能が変質するっていうすごい問題がわかった
この功績は大きいな

125 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 12:18:21 ID:SB17koxs]
修正されるかね
プラグイン側の問題なノアk

126 名前:名前は開発中のものです。 [2007/06/25(月) 14:39:08 ID:m2e8IBAx]
e3dhsp3でも演算制度が落ちる事を確認
この事について時に記載なし



127 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 17:22:37 ID:sJpJAVN7]
速度稼ぐために精度落としてるとかなのかねぇ。

128 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 18:23:06 ID:hRvLfF9s]
HSPの中間コード解析の重さに比べたら、倍精度と単精度との速度差なんて無いに等しい というか無いよ。
なんか、すばらしい面白い楽しいバグがある予感。



129 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 19:36:08 ID:A3wlBBCy]
DirectXのライブラリがロードされるときに、勝手にCの実数型を差し替えるんじゃないかな。

130 名前:名前は開発中のものです。 mailto:sage [2007/06/25(月) 21:33:16 ID:KRYRd+kK]
HSPじゃなくDirect3Dの仕様と思われ






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

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

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