1 名前:名前は開発中のものです。 [03/07/31 21:37 ID:L/7S/kPx] ノベルゲームツールを制作中の人達が集うスレです。 新たなノベルツールを作ってやるというチャレンジャー歓迎。 前スレ ▼ノベルゲームツールを作っちゃうぞ!Ver2.0 pc2.2ch.net/test/read.cgi/gamedev/1040118471/ 前々スレ ▼ノベルゲームツール作っちゃうぞ! pc2.2ch.net/test/read.cgi/gamedev/1013170036/
797 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 11:49:55 ID:GIcTFPfW] おまけ:いくつかのスクリプト/プログラミング言語でのANDの評価(ORも同様)。 C/C++ && 短絡 *1 java && 短絡 VB And 正格 AndAlso 短絡 delphi and 短絡 scheme and 短絡 perl &&,and 短絡 TJS2 && 短絡 NScripter *2 *1 C++で演算子オーバロードした時は正格 *2 なし:式を扱えない
798 名前:691 mailto:sage [2006/11/03(金) 20:02:48 ID:LiNNIOVd] >>795 すごくよくわかった。795タンは物知りだなぁ(*´∀`*) それと>>797 を見る限り、短絡評価のほうが誤解がなくてよさそうだね うーん、どうしたらいいんだろう (a) Foo 0 <> 1000 Foo / 5 > and (a-1) Foo 0 <> (a-2) 1000 Foo / 5 > (a-3) <a-1> <a-2> and (a)をこういうブロックに大別して…、普通に上から順に式を評価していくだろ? 評価の過程で divide by 0 が出そうだと判明したら、 実際の計算はせず、「そのままだとエラーが出そうだ」という情報だけを記憶しておく。 んで(a-3)にきたら、まず<a-1>をみて、偽なら<a-2>の評価は無視して全体の評価として「偽」を返す。 <a-1>が真の場合、続いて<a-2>の評価を見るわけだが、「エラーが出そうだ情報」を記憶しているときは これ以上続けるわけにもいかんので、これまでの作業をすべて放擲して if 文を抜ける、とか。 なんだ・・・おれは何を書いているんだ?わけわかんなくなってきt ここまで↓作ってはしゃいでたら(-2*-5)とかの単項演算子が使えないことに気づいたorz members3.jcom.home.ne.jp/jellyjam/img/RPN.png 付け足していくより最初からやり直したほうがはやそうだ… また明日か…
799 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 20:44:41 ID:GIcTFPfW] >798 こんなんはどう? RPN作る/処理するのが面倒になるけど。 A and B A #dup not #ifskip<N> #pop B #marker<N> A or B A #dup #ifskip<N> #pop B #marker<N> #dup スタックの一番上を複製する #pop スタックの一番上を捨てる #ifskip<N> スタックの一番上を取り出し、 trueなら#marker<N>まで読み飛ばす falseならそのまま続行 #marker<N> 読み飛ばされる ※入れ子になる場合があるのでNが重複しないよう気をつけること。 A and B and C A #dup not #ifskip<N1> #pop B #dup not #ifskip<N2> #pop C #marker<N2> #marker<N1> ( Foo<>0 ) and ( 1000/Foo > 5 ) Foo 0 <> #dup not #ifskip<0> #pop 1000 Foo / 5 > #marker<0> 三項演算子もできるかな A?B:C A #ifskip<N1> C #ifskip<N2> #marker<N1> B #marker<N2>
800 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 22:23:23 ID:GIcTFPfW] >798 > members3.jcom.home.ne.jp/jellyjam/img/RPN.png (25*Hage/24)が 25 Hage 24 / *、つまり/が*より優先になってる(or 右結合になってる)けどOKなの?
801 名前:167 mailto:sage [2006/11/03(金) 23:12:17 ID:MzOzsI/Z] 複雑なRPNですね一度基盤を(自力で)作り上げたのに、今から組み直すのはぞっとします(;´Д`) とりあえず、今はVer1.0を目指して頑張っていこうかなと。作業が八割方終了したので、近々新Ver出せそうです(´Д`)
802 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 23:15:24 ID:LErpqGYA] 【スクリプトをちょっと紹介させてください】 アドベンチャーゲーム用スクリプトシステム「MICoスクリプト」を開発しました。 軽いこと&商用ゲームでの使用可能な高性能を目指して設計しており 複雑な演出も簡単に作れるシステムです。 詳しい紹介は公開サイトにありますので、よろしければ使ってみてください。 公開サイト ttp://mico.x0.com
803 名前:名前は開発中のものです。 mailto:sage [2006/11/03(金) 23:37:17 ID:pcqCA54V] ダウンロードできません
804 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 00:20:08 ID:s0zwtZjj] URLに¥をつけるなんて、相当●●だなぁ。大丈夫か?>>802 ttp://mico.x0.com/files/MICo100c.zip ttp://mico.x0.com/files/Sample01.zip
805 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 12:59:51 ID:zX4Hlg4d] ぬはDelphiなんだよな。のらだいこさんとこのやつは見たのか?
806 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 14:03:18 ID:uWIJc3Ba] のらだいこ本人乙。
807 名前:名前は開発中のものです。 mailto:sage [2006/11/04(土) 20:39:01 ID:zX4Hlg4d] 俺は違うぜwwwwwww通りすがりのVIPPERwwwwwwwww
808 名前:名前は開発中のものです。 mailto:sage [2006/11/05(日) 14:24:28 ID:bBy3ooVM] 再び空気読まずスマソ ペンタって何インチぐらいがいい?
809 名前:691 mailto:sage [2006/11/06(月) 06:03:55 ID:/PkNNPJx] オハヨー members3.jcom.home.ne.jp/jellyjam/p/parser.zip ここ↓のを参考にして、Delphi に移植してみた。これはすごい! ttp://www.h4.dion.ne.jp/~zero1341/winback2.htm 実際の計算は行わず、中置記法を逆ポーランド記法に返還するだけのものだ。 ↑に倣って、式が変だったりするとエラーを出力するようになってるはず。 ちなみに演算子の優先順位は以下の通り。Delphi と一緒やね。 優先順位は括弧を使って変更できるよ。 1 位(最高) not,-(単項演算子、RPN 上では neg に変換される) 2 位 *,/,mod,and 3 位 +,-,or,xor 4 位(最低) =,<>,<,>,<=,>= しかし式が複雑になるほど変換するコストが気になるなぁ 果たしてループ内でストレスなく機能してくれるだろうか? インタプリタの限界はどこだ。
810 名前:691 mailto:sage [2006/11/06(月) 06:47:54 ID:/PkNNPJx] >>799 んー、難しい! これ、not はどこに掛かってるの? だめだ、仕事終わってからまた考えよう。 >>800 あと右結合、直ってると思いますぜよ >>801 ガンガレ。超ガンガレ >>805 情報thxですよ。こんな便利なものがあるとは知らなかった。 んでも、今やってることってそれほど難しいことじゃないから、まずは自分で作ってみたいんだよね。 などと大見栄を切ってみるテスト。もう後には引けないぜ? >>808 わかんないけど33インチぐらいでいいんじゃね ttp://www.pentaputter.com/products/index.html
811 名前:名前は開発中のものです。 [2006/11/06(月) 07:07:41 ID:WD4G+Tat] >810 A and B → A #dup not #ifskip<N> #pop B #marker<N> を例にする(A,Bは真偽値を返すRPN式)。 []はスタック状態(左がスタックトップ)、 //以降はコメント。 ●Aがtrueの時 [] A #dup not #ifskip<N> #pop B #marker<N> [true] #dup not #ifskip<N> #pop B #marker<N> [true,true] not #ifskip<N> #pop B #marker<N> [false,true] #ifskip<N> #pop B #marker<N> //偽だったので読み飛ばしは無し [true] #pop B #marker<N> //結果はBのみで決まるのでAは要らない [] B #marker<N> [B] #marker<N> //マーカは読み飛ばす [B] (END)
812 名前:続き mailto:sage [2006/11/06(月) 07:08:58 ID:WD4G+Tat] ●Aがfalseの時 [] A #dup not #ifskip<N> #pop B #marker<N> [false] #dup not #ifskip<N> #pop B #marker<N> [false,false] not #ifskip<N> #pop B #marker<N> [true,false] #ifskip<N> #pop B #marker<N> //真なので対応するマーカまで読み飛ばす [false] (END)
813 名前:167 mailto:sage [2006/11/09(木) 10:39:11 ID:FF84JFMS] ほしゅ(´Д`) ソースコードの変更は既に終わったのですが、パフォーマンスが極端に落ちてますorz なので、プロファイラを入れてあっちこっちを弄る日々………誰かボスケテorz
814 名前:167 mailto:sage [2006/11/09(木) 13:36:01 ID:FF84JFMS] 誰か見ている事を期待しつつ。何とか、パフォーマンスが極度に落ちている部分を発見しました(´Д`) ですが、何故落ちているのかが理解出来ず………誰か説明出来ますか?orz if((m_Log_Text.at(m_It)>=(char)0x81 && m_Log_Text.at(m_It)<=(char)0x9F) || (m_Log_Text.at(m_It)>=(char)0xE0 && m_Log_Text.at(m_It)<=(char)0xFF)){ m_It += 2; } を if((m_Log_Text.at(m_It)>=0x81 && m_Log_Text.at(m_It)<=0x9F) || (m_Log_Text.at(m_It)>=0xE0 && m_Log_Text.at(m_It)<=0xFF)){ m_It += 2; } と変えるとパフォーマンスが急激に悪化します、ただのキャストの有無だけなのに何故なのでしょう(´Д`)
815 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 14:38:01 ID:zlLv3Pnq] みてるよノシ けどサパーリワカラン
816 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 14:53:50 ID:+EWAYAdH] >814 increase warning level of your compiler!
817 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 15:17:42 ID:z1ieNEFL] パフォーマンスはさておき、一時変数作れよ 比較式を見直せよ unsigned char hoge = static_cast<unsigned char>(m_Log_Text.at(m_It)); if( !(hoge < 0xA0 && hoge > 0xDF) ){}
818 名前:167 mailto:sage [2006/11/09(木) 20:25:13 ID:FF84JFMS] 基本的に、そこでしか.atは使っていないのでたった4つの命令で一時変数を作るのもどうかと思い(´Д`) あと、直感的ではない比較式は極力使わないようにしています。オープンソースを前提に制作していますので('='
819 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 20:37:44 ID:+EWAYAdH] 多分そのif文には else ++m_It; が続くと思うけど、テーブル作っておけばいいんじゃね。 m_It += TABLE[m_Log_Text.at(m_It)+OFFSET]; か m_It += TABLE[m_Log_Text.at(m_It)&MASK]; みたいな感じで。
820 名前:167 mailto:sage [2006/11/09(木) 21:10:31 ID:FF84JFMS] >816 何か、警告が出るという事でしょうか? >817 呼び出し頻度が高くない部分なので、テーブルにするまでもないかと。 三角関数みたいな複雑かつ演算に時間を要するものでしたらテーブルを作った方が良いかもしれませんが、 上記のは比較的単純な比較式で出来ますし。テーブルを作る分だけ、余計にキャッシュを圧迫しそうです(´Д`)
821 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 21:53:59 ID:+EWAYAdH] 適当に補ってその部分だけコンパイルしたら a.cc:14: warning: comparison is always false due to limited range of data type a.cc:14: warning: comparison is always true due to limited range of data type a.cc:15: warning: comparison is always false due to limited range of data type a.cc:15: warning: comparison is always true due to limited range of data type とか。 > 呼び出し頻度が高くない部分なので、 ならそもそもボトルネックにならないはず。 > テーブルを作る分だけ、余計にキャッシュを圧迫しそうです が、分岐は排除できるぞ。
822 名前:167 mailto:sage [2006/11/09(木) 22:37:42 ID:FF84JFMS] >821 う〜ん、適当に補ったからだと思われますです。 /Src/AbyssLib/Command/Cmd_text.cpp内に、具体的なソースはあります(´Д`) 全体としての呼び出し頻度は高くないのですよ、ぶっちゃけスクリプトのtext命令が実行されている間にしか使われません。 だからこそ、何でこんなところが重くなるのか疑問なワケで………(;´Д`) あと、単純な分岐条件なだけにテーブル作るまでも無いかなと。
823 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 23:07:47 ID:oeKHxQcL] /Src/AbyssLib/Command/Cmd_text.cpp内、とか言われても、そのソースはどこだよ
824 名前:167 mailto:sage [2006/11/09(木) 23:30:24 ID:FF84JFMS] abyss-21.hp.infoseek.co.jp/Release.zip です、すっかり貼り忘れてました(´Д`) 最新Verではなく、ひとつ手前ではありますが………。
825 名前:名前は開発中のものです。 mailto:sage [2006/11/09(木) 23:35:47 ID:oeKHxQcL] 落とせないし、そもそもabyss-21.hp.infoseek.co.jp/ にもアクセスできないが?
826 名前:167 mailto:sage [2006/11/09(木) 23:37:39 ID:FF84JFMS] 確認しました、どうやらinfoseekが落ちている様ですね。 先日も落ちてましたし、落ち易いのかもしれません(´Д`)
827 名前:名前は開発中のものです。 mailto:sage [2006/11/10(金) 13:48:20 ID:n/BNIL0m] >基本的に、そこでしか.atは使っていないのでたった4つの命令で一時変数を作るのもどうかと思い(´Д`) >あと、直感的ではない比較式は極力使わないようにしています。オープンソースを前提に制作していますので('=' >三角関数みたいな複雑かつ演算に時間を要するものでしたらテーブルを作った方が良いかもしれませんが、 >上記のは比較的単純な比較式で出来ますし。テーブルを作る分だけ、余計にキャッシュを圧迫しそうです(´Д`) >あと、単純な分岐条件なだけにテーブル作るまでも無いかなと。 やれやれ こんな調子じゃ>>814 の疑問に回答したとしても理解できるとは思えんな
828 名前:167 mailto:sage [2006/11/10(金) 18:55:58 ID:5S9vD1uX] >827 理解出来るかどうかは分かりませんが、回答出来るのでしたらお願い出来ればと('='
829 名前:名前は開発中のものです。 mailto:sage [2006/11/10(金) 19:55:35 ID:jEDzoqtR] if((m_Log_Text.at(m_It)>=(char)0x81 && m_Log_Text.at(m_It)<=(char)0x9F) || (m_Log_Text.at(m_It)>=(char)0xE0 && m_Log_Text.at(m_It)<=(char)0xFF)){ m_It += 2; } と if((m_Log_Text.at(m_It)>=0x81 && m_Log_Text.at(m_It)<=0x9F) || (m_Log_Text.at(m_It)>=0xE0 && m_Log_Text.at(m_It)<=0xFF)){ m_It += 2; } は、意味が、結果が異なってるってのは分かってる?
830 名前:名前は開発中のものです。 mailto:sage [2006/11/10(金) 20:30:11 ID:5S9vD1uX] 上は右辺がchar型にキャストされるので比較時に左辺の返り値はそのまま、 下は右辺がint型なので比較時に左辺の返り値がintにキャストされる、でしょうか? 多分そうだとは思うのですが、確証は持てません(汗
831 名前:167 mailto:sage [2006/11/10(金) 20:37:23 ID:5S9vD1uX] ↑は167でした(汗
832 名前:名前は開発中のものです。 mailto:sage [2006/11/10(金) 20:41:34 ID:jEDzoqtR] 何言ってるのかよくわからんが、違う。 char + charはint型を返す。そんなことじゃない。 0x81は正の整数で、(char)0x81は負の整数だ。 WindowsのVCはcharは符号付の型だからな。 でm_Log_Textはstring型で、at()の戻り値はchar型だ。つまり下の >m_Log_Text.at(m_It)>=0x81 は必ずfalseになる。charは128以上を表せない。 よって、中途半端なマルチバイトが出来上がるわけだ。 これが表示されなかったり、生成が遅かったりすると、処理落ちしたように見える。 つまり、その式が遅いわけではない。 何がプロファイルとった、だよ。嘘付くな。取ってないだろ。
833 名前:167 mailto:sage [2006/11/10(金) 21:08:21 ID:5S9vD1uX] 成る程、理解出来ました。有難う御座いますm(_ _)m >何がプロファイルとった、だよ。嘘付くな。取ってないだろ。 嘘じゃあないですよ、実際とりましたがプロファイラでは分からなかったので、 原因が上記の部分だと断定するのに変更前と変更後のソースを比較してチェックしていました。 プロファイラの結果を役立てて断定したのかと問われれば、確かにそうではありませんが(´Д`) ともあれ、重ね重ね有難う御座います。
834 名前:名前は開発中のものです。 mailto:sage [2006/11/10(金) 21:40:30 ID:nTN0QHiT] なぜか科学者とノミのジョークを思い出した
835 名前:名前は開発中のものです。 mailto:sage [2006/11/11(土) 02:03:37 ID:fPVPryGm] なんだかんだ言っても、やることをやる>>832 に漢気を感じた。 ガンガレ!!>>167
836 名前:691 mailto:sage [2006/11/11(土) 22:58:51 ID:Y1RZBpHm] おっすおら>>691 ほぼ一週間ぶりのプログラミング。 なんで人間は好きなことだけをして生きていけないんだぜ? ごちゃごちゃやってみた結果、ようやく変数への式の代入ができるようになった( ゜д゜) これで if 文に取り掛かれるぜ 懸念してたパーサの動作速度はあんまり気にならなさそうなので安心した >>811-812 ありがとう!超よくわかっただぜ このPRNを作るのはそんなに手間じゃなさそうなので近近にはできると思うよ
837 名前:691 mailto:sage [2006/11/14(火) 05:58:13 ID:CtgyW8K3] members3.jcom.home.ne.jp/jellyjam/p/novel16.zip ・ゲーム中、右ボタンクリックやスペース押下でテキストの表示・非表示を切り替えることができるようにした ・スクリプト記述でインデントできるようになった(半角スペースまたはTAB) ・変数を使えるようになった ・命令の引数に変数を仕込めるようになった ・システム定数を定義した(True/Falseやトランジションとかに使うやつなどなど) ・!if、 !else、 !endif の実装 これまでのように変数名や命令名は大文字小文字を判断しません。 >>790 で書いた通り、変数の型は第二引数によって自動的に判断されます。 !var hoge, 255 //これは数値型 !var hige, 'UNKO' //これは文字列型 !var hage, True //これは真偽値型 !var UNKO, hoge+100 //これは「数値型変数+数値」なので数値型 なお演算は型が同じもの同士でないと行えません。 こんなのはだめ。 !var hige, 'UNKO' //higeは文字列型 !var hage, True //hage真偽値型 !var hoge, hige+hage //「文字列型+真偽値型 」なのでシンタックスエラー。この行は無かったことに いろいろ考えたのですが、数値に対しては論理演算は行えないようにしました。 !var hoge, "$0000FFFF or $FFFF0000" //こんなのはだめ こんなのあっても使わんと思うし。
838 名前:691 mailto:sage [2006/11/14(火) 06:03:12 ID:CtgyW8K3] んで、今回の更新分でこんなことができるようになった。 !var Hoge, true !var hige, true //スペースを含む式はダブルクォートで囲んでやってくだちぃ //そのうち、そんなことしなくていいように直すと思うだぜ !if "hoge and hige" あいうえお !TextDraw !cw //if文をネストさせてみる !if False かきくけこ !TextDraw !cw !else さしすせそ !TextDraw !cw !endif !else たちつてと !TextDraw !cw !endif これを実行すると 「あいうえお(クリック)さしすせそ(クリック)」 と表示される…、はず。
839 名前:691 mailto:sage [2006/11/14(火) 06:12:43 ID:CtgyW8K3] っと 今ふと思いついたが、!if 文の中で !goto とか !Linker が呼ばれたらifのネストが無茶苦茶になるな うわどうしよう、これは困ったぞ
840 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 09:52:42 ID:Gp2dNbIi] >837 *start !if "1/0=2" ほにゃらら !else ふにょらら !endif !TextDraw !cw !if "false and ( true and 1/0 )" へにゃらら !else ひにょらら !endif !TextDraw !cw
841 名前:名前は開発中のものです。 mailto:sage [2006/11/14(火) 09:57:23 ID:Gp2dNbIi] おっと、true/falseは先頭大文字。結果は変わらんけど。
842 名前:691 mailto:sage [2006/11/14(火) 13:57:56 ID:CtgyW8K3] ( ゚д゚) <ムシャムシャ >>840 テストしてくれてありがとう! !if "1/0=2" //ここで0除算エラーでてます。この行は無かったことにされる・・・ ほにゃらら !else ふにょらら !endif !TextDraw !cw !if "false and ( true and 1/0 )" //げ本当だ へにゃらら !else ひにょらら !endif !TextDraw !cw 二番目のほうは問答無用でFalseを返さなくちゃいけないのにな。 マーカーの挿入方法がおかしいのかも。帰ったら見直してみる。 つーかこの程度の不具合、開発段階で気づけよって話ですが。やはりおれは一度首吊る必要があると思う。 あと、評価の途中でなんらかのエラーが出たら、対応する !endif までジャンプさせないとだめだな。 っていうか、これもできていて当然の動作なんだよなー(;´Д`)
843 名前:691 mailto:sage [2006/11/14(火) 23:03:53 ID:CtgyW8K3] おっす > 評価の途中でなんらかのエラーが出たら、対応する !endif までジャンプ > マーカーの挿入方法がおかしい ってのを2秒で直した。2秒で直した。 あとスクリプトの1行目が空行だとエラーが出てたのでそれも直した。 今後のうpは、もっとしっかりデバッグしてからするようにします(;´Д`)
844 名前:691 mailto:sage [2006/11/16(木) 00:04:27 ID:nP5t6MYc] 改めて members3.jcom.home.ne.jp/jellyjam/p/novel16_2.zip ・and や or を使った if の評価式の結果がおかしかったので修正 ・if の評価式の文法がおかしかったりしたとき!endifまでジャンプするようにした ・スクリプトの最初のほうがが空行だとエラーが出てたので修正 (・Read Meにこのスレのことを書き忘れてたので追加テヘッ) 問題のif文だけど、いろいろなパターンを試したし、耐久テストもやったからもう大丈夫だぜ!(たぶん) とはいえ、まだ>>839 の問題を含んでいるので、if 領域内でラベルジャンプしないようにしてくだちい あー、どうすっかなこれ…。
845 名前:691 mailto:sage [2006/11/18(土) 07:30:59 ID:MpWhpoQC] members3.jcom.home.ne.jp/jellyjam/p/novel17.zip ・変数を展開してテキストとして出力できるようにした( !Text ) ・数値型変数の計算簡略化のための !inc !dec 命令を実装した ・タイムウェイトの引数に式が使えてなかったので修正 ・二重起動を禁止した ・命令検索の順番を変更してちょっと高速化? 変数の展開は !var Hoge, 5 !var Hage, True !var Hige, 'あいうえお' !Text "Hoge+Hage+Hige" これを実行すると「5Trueあいうえお」と出力される。 普通のテキスト出力は今までどおり命令名なしでいけるぜ なんでこんなこと(専用の命令を用意したか)になったかというと 1.変数を含まないテキストのほうが圧倒的に多いだろうということ 2.なるべくなら計算式を展開するコストを抑えたいという欲求 を考慮した結果である。もふもふ。 どうしても気になるなら !Text を、変数を含まないテキストでも使えばよろし。 !inc !decはDelphi互換です。数値型引数も渡せます。知らん人はこの際Delphiを勉強してみよう。 最後に、Read Me に高慢ちきな利用規約を書いてみたので読んでみてね。 うあわああーーこんなじかんだもういかなくてはあ
846 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 12:24:46 ID:aH09oUml] *start !var Foo 3 !inc Foo !Text Foo !TextDraw !cw Foo/ !TextDraw !cw !Text Bar !TextDraw !cw Bar/ !TextDraw !cw !inc 4 --End. !TextDraw *end !goto *end
847 名前:名前は開発中のものです。 mailto:sage [2006/11/18(土) 12:27:27 ID:aH09oUml] っと、!inc 4は要らなかった。
848 名前:691 mailto:sage [2006/11/18(土) 22:02:24 ID:MpWhpoQC] ありゃ、>>845 は不具合があったやつの修正前のをうpしてたみたい! inc/decで明示的に引数渡さないとだめになってるね。 こっちが本命でつ。失礼しまつた。 members3.jcom.home.ne.jp/jellyjam/p/novel17_2.zip (* !inc/!decの使い方講座 *) 1. 整数型変数を宣言します 2. !inc/!decの第一引数に整数型変数を渡します (3. このとき第二引数に整数式を渡すと、その数だけ加算/減算されます) 4. ヤター なお、第一引数の整数式に宣言されていない変数が記述されていると エラーが発生し、その命令がある行をスキップします。 第二引数が整数型でない場合も同様にスキップします。 以下インクリメントのテスト。 //整数型変数の宣言 !var 変数, 0 *label1 //変数の値を文字列に展開します !text "'変数の値は' +変数 +'です'" //5だけ加算します !inc 変数, 5 !TextDraw !cw !@@ !goto *label1
849 名前:691 mailto:sage [2006/11/18(土) 22:08:34 ID:MpWhpoQC] >>846 thx! > !inc Foo 文法は正しいですがアプリケーション側の不具合で動作してませんでした。(´・ω・`)ゴメソ > !Text Bar ここで定義されていない変数Barが参照されているので構文エラー発生。スキップ。 > !inc 4 4は変数ではないのでエラー。スキップ。 > *end > !goto *end 無限ループに突入してます。大ピンチ。
850 名前:846 mailto:sage [2006/11/18(土) 22:20:38 ID:aH09oUml] ttp://gamdev.org/up/img/8123.png ・★のとこで一回余分に(つまり3回)クリックが要る ・何故かBか消える ・さらに何故かその後字が黒くなる
851 名前:691 mailto:sage [2006/11/18(土) 22:48:06 ID:MpWhpoQC] >>850 y=ー( ゚д゚)・∵. ターン 毎度毎度すまん! !Text のエラーが出たときの処理がまずかったようだ! ∧∧ ( ,,) / | 〜(__) members3.jcom.home.ne.jp/jellyjam/p/novel17_3.zip (差分のみ)
852 名前:691 mailto:sage [2006/11/18(土) 22:50:47 ID:MpWhpoQC] 後ろに余計なものをつけたおかげでURLが変だな members3.jcom.home.ne.jp/jellyjam/p/novel17_3.zip
853 名前:691 mailto:sage [2006/11/20(月) 23:09:13 ID:TCoOZXSp] コンフィグ画面が手狭になってきたので改築してみた もうなんか自由すぎる members3.jcom.home.ne.jp/jellyjam/img/config.png
854 名前:名前は開発中のものです。 mailto:sage [2006/11/21(火) 06:01:22 ID:xZAgq/Gk] どうせならエフェクトの時間を半分にするもつけてくれ
855 名前:名前は開発中のものです。 mailto:sage [2006/11/22(水) 04:20:28 ID:ay/jEsPR] エフェクトのヘルプ画像を、多少追加してみました キャプチャーしてペイントで保存していくだけでも 時間けっこうかかった。これでヘルプ3割ぐらい終わったかな システム用のダミー画像の差し替え中で絵そのものが入っていないため exeは、スクリプトを動かす部分以外は正しく動作しない部分があります SYSTEM-NNN www2s.biglobe.ne.jp/~tinyan/nyanlib/index.htm
856 名前:691 mailto:sage [2006/11/23(木) 21:46:47 ID:2iFawqr+] 今日は中華街でイチャイチャした。 肉まん1個500円とか超高くね? members3.jcom.home.ne.jp/jellyjam/p/novel18.zip ・コンフィグ画面からスクリーンモードの変更をできるようにした ・>>854 の機能 ・「スキップ中はSEを再生しない」って項目 とりあえず動くバージョンなので最適化してない。 今日のソースの汚さは異常。 コンフィグ画面改造にあたっていろいろいじってたら、新たな問題が発覚した。 現在再生中の SE に対して音量を 0 にすると何故だか知らんが音量が MAX になる。 あとBGM/SEともにフェードアウト中に音量を変更するとこれまたおかしくなる。 いつでもコンフィグ画面を出せるのが原因なんだけど、なるべくならこの機能は残したい。。。 なんだよもうめんどうくせえな つか、もう DDSD 使いたくないなぁ…。BASS に慣れると使いづらいかも。 音量はいちいちデシベルに変換せないかんし。
857 名前:名前は開発中のものです。 mailto:sage [2006/11/24(金) 10:56:25 ID:GqXnQfEk] >>855 トップの真っ赤な背景にビビリました
858 名前:名前は開発中のものです。 mailto:sage [2006/11/25(土) 16:50:50 ID:CHSI80wS] >>855 誤爆の誤爆? 選考スレに書き込んでなかったっけ? >>857 HPのことなら、こっちでは深緑を薄めたような、明るめの緑色に見える。
859 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 19:36:59 ID:AAKyS3Pm] また手狭になった。 スクロールバーも小さくしてみたんだけどなぁ。 members3.jcom.home.ne.jp/jellyjam/img/config_sound.png けっきょく、音再生ライブラリを全部作り直した。 > 現在再生中の SE に対して音量を 0 にすると何故だか知らんが音量が MAX になる。 > あとBGM/SEともにフェードアウト中に音量を変更するとこれまたおかしくなる。 も直ったですよ。 1フレームあたりの計算量(しかも少数の計算)は増えたけど、このくらいならまぁいいかって感じ。 固定小数使ったら負荷軽減したりするかな。 リファクタリングとかバグ取りもいい加減飽きてきたし、そろそろ自由スプライト表示でも作ってみっかー >>855 それ破片エフェクトってどうやってるんだろう 一枚の画像をバラバラに切り分ける方法が思いつかん
860 名前:名前は開発中のものです。 mailto:sage [2006/11/26(日) 20:24:42 ID:DQKfrVBZ] ぱっと見、ボロノイ図っぽく見えるけどどうかな。
861 名前:名前は開発中のものです。 mailto:sage [2006/11/27(月) 11:23:31 ID:wQG9Jm5U] >>857 おまえそれブラックTAINYANじゃね? おめでとう。かなり運が良かったぞ
862 名前:vvm-man mailto:sage [2006/11/28(火) 07:40:05 ID:aGW5KWsL] f58.aaa.livedoor.jp/~lionehar/new/ や、お久す。 まぁ、黙って色々更新はしてたんですけどね。 とりあえず、大分前の話だけど、ページの読み込みをAjax的にやってみました。 ちょっと読み込みが早くなったかも。 で、最近、System.jsの中を調整してMacサファリで結構まともに動くようになったす。 それに加えIE7に正式対応。 Opera、不具合ありだが、動作自体は可能。 あと、ツールとは関係ないけど、サンプルの人物紹介、月夜の立ち絵を更新しました。 ノートPCのタッチパネルで描いたわりには綺麗に描けたと思います。
863 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 08:12:08 ID:yrb7qqAX] クリック待ちと改ページのアイコンは逆の方がいいんじゃね? セーブできないなら予想プレイ時間を書いておく。 ネクロマンサーってタイトルを書くんじゃなくて「ゲームスタート」とか「はじめから」と書く。
864 名前:名前は開発中のものです。 mailto:sage [2006/11/28(火) 22:09:16 ID:B8ch4/XT] 真っ黒 何も表示されないまま2分が過ぎた あと1分したらこのカップラーメンが出来上がるだろう
865 名前:vvm-man mailto:sage [2006/11/29(水) 02:36:40 ID:Kyo0fD77] >863 そうね。 >864 ブラウザとか言ってくんねぇとわかんねってば。 ただ、あんまし安定して動作してくれない兆候はありそう。
866 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 02:58:39 ID:GrMuZBJF] >>865 スレイプニル2.49とIE6 ノートンの馬鹿が邪魔してた 両方動いた ブラウザでここまでできるとは驚きだ
867 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 17:11:37 ID:J2RQ6icy] >>ノートンの馬鹿が邪魔してた これはなんとかしんと…
868 名前:vvm-man mailto:sage [2006/11/29(水) 18:23:08 ID:Kyo0fD77] (‘・ω・`)ノートン先生はなんて言ってブロックするの?
869 名前:名前は開発中のものです。 mailto:sage [2006/11/29(水) 19:13:51 ID:GrMuZBJF] >>868 単に.jsの実行結果をポップアップ広告と誤検知するみたい 「広告ブロック」と「ポップアップ遮断」を無効にすると実行できるようになった JSはよくわからんので技術的なことはアドバイスできない(´・ω・`)ゴメンネ
870 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 05:57:02 ID:8fYVUZ8f] members3.jcom.home.ne.jp/jellyjam/p/novel19.zip ・サウンドライブラリを書き直した ・選んだ選択肢をログに記録するようにした ・その他覚えてないほどいろいろ最適化 主にリファクタリング。1フレームの計算量はかなり減ったと思う。 一通り試験はしたつもりだけど、もしかしたら何か問題あるかも。 それにしても更新速度が前に比べて落ちてるなぁ。 これから忙しくなるからもっと落ちるかも試練…。年内には完成できると思ってたんだけどな。 ここからチラ裏─────── ところで、そろそろサーバ容量が圧迫されてきたので、以前のバージョソは消そうと思いまつ。 現在サーバ上に置いてあるのは novel14〜 です。 これよりマイナーのバージョソ(novel1〜)をご所望の方は個人的にでも連絡ください。 思いつく限りの種種の方法でアーカイブを送りつけまつ(`・ω・´)b ここまでの変遷をみてると結構感慨深いものがあるだぜ。 ─────────ここまでチラ裏 >>860 調べてみたけど全然理解できなかった(;´Д`) でもたしかにそんな感じだね。
871 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 06:02:11 ID:6MmDDvnh] エラー出るんだけど。
872 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 06:02:38 ID:8fYVUZ8f] ああそうだ、いつかお知らせしなきゃと思ってたんだけど、 「しねきゃぷしょん」っていうフォントがあるとおれと同じ環境(>>752 参照)になります。 今のところ使うフォントをこれに指定してるので使ってみるといいかも。 もしこのフォントが入ってないと「MS Pゴシック」になると思う。
873 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 06:09:13 ID:8fYVUZ8f] >>871 工 エ エ ェ ェ (゚Д゚; ) ェ ェ エ エ 工 ぜひ詳細きぼん! つーかレスはやっ!
874 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 06:20:30 ID:6MmDDvnh] あ、直ってる。さっきはクリックしてもダウンロードできなかっただけ。
875 名前:名前は開発中のものです。 mailto:sage [2006/11/30(木) 23:29:49 ID:8fYVUZ8f] サブルーチン機能を組み込んでみた。案外簡単にできたなぁ。 サブルーチンに飛んだ先でさらにサブルーチンに飛ぶこともできる。 実質2億回のネストが可能。 ラベルジャンプには、その名のとおり目的地となるラベルが必要だけど、 このラベルを検索するコストが気になってきた。上から一行づつラベルを探しているのが問題だ。 添付のサンプルシナリオぐらいの規模ならまだしも、これが5000行、あるいは1万行クラスの 規模になったとき、今のやり方ではかなりの検索コストを支払う可能性がある。 解決方法として、 1: ラベルの行番号をプロトタイプのようにあらかじめ宣言しておく 2: そもそもラベルを廃止して、行番号のみでジャンプ先を指定するようにする 3: 一度通ったラベルは記憶しておく。二回目からの検索は高速になる とか考えてみた。 1,2 はともに強力だろうけど、シナリオに不備があったときの修正で、 行番号がずれる可能性を考えるとイマイチかなとも思う。 3 は根本的な解決になってないので駄目。 どうしたらいんだー! とりあえず後回しにしておこう。
876 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 16:54:57 ID:7vJA/jaU] 起動時に全シナリオを走査して、ラベル位置を内部的に把握しておく もしくはシナリオを暗号化するときラベル位置を把握しておき、それをどっかに紛れ込ませるとか? どっちも「手軽さ」からはちょっと離れてしまうが
877 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 20:34:51 ID:cfQDTSNd] シナリオファイルを複数に分ける
878 名前:名前は開発中のものです。 mailto:sage [2006/12/01(金) 23:52:23 ID:3ltBEf8r] 画像キャッシュを有効にするかどうか選べるようにした。 いまのところキャッシュを有効にすると、最大でVRAMを22MBぐらい占有するようになる…。 ノベルゲームで22MBも使うってのはどうなの?(;´д`) おれ普段ゲームしないからよくわかんないや。これって高スペックなんだろうか。 >>876 ん、結局のところ、そのあたりに落ち着くんだろうな。 あとはどうやって実装するかの技術的な話になるってだけで。 >>877 現状でシーンごとの管理や、単にファイルサイズの肥大化を防ぐ目的としてシナリオの分割はできるように作ってあるけど、 これをさらに発展させて行数制限するってのもひとつの手かもなぁ。 ただ、サンプル程度の内容ですでに200行越えだから、簡単に5000行とか超えてしまいそうな気もする。 シナリオを書くとき、常に分割を念頭においておかなきゃいけないのが手間になるんじゃねとか思ったり。 行数制限ってのは結構厳しい縛りになるんじゃないかと。 これはプレイヤーではなくて製作者側の都合だけどね。
879 名前:vvm-man mailto:sage [2006/12/02(土) 06:07:38 ID:reS/o3fC] テキストをそのまま読み込むんでなく、中間ファイルでテーブル構造をしたものを作れば? >>876 が提案した起動時に、ってんだと起動が遅くなるじゃん。 んで、こっちの開発の話。 人物紹介画面でキャラを背景の前に立たせて見ました。 IE6,Opera,FireFoxでは不具合はなし。 何かあったら教えてください。 >>869 ポップ……それは心当たりないけど、広告はなんか分かるかも。 報告39th。 この板じゃあJavaScript分かる人って少ないよねー。
880 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 08:19:43 ID:ZjHXEGS3] >879 > >>876 が提案した起動時に、ってんだと起動が遅くなるじゃん。 測ってみた? 手元のマシンで以下の条件でラベルスキャンの有無で約40msecしか違わなかったが。 条件が変わったとしても1000倍遅くなると言うことはまあ無かろう。 # 40msecを起動が遅くなるとして問題があるというなら止めはしないが。 [計測条件] 対象スクリプト:ランダム生成したスクリプト10万行、内ラベル10001行(10%) PC:AthlonX23800,メモリ4G,FreeBSD6.0R プログラム言語:Perl5 計測方法 timeコマンド、4回実行で最初の1回を捨てた3回の平均値
881 名前:vvm-man mailto:sage [2006/12/02(土) 08:56:26 ID:reS/o3fC] >>880 いや、測ってない。 その程度か。 普段扱ってる相手がJavaScriptなんで過剰に高速化を意識してしまったよ。
882 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 11:06:34 ID:4YZh1zne] > PC:AthlonX23800,メモリ4G,FreeBSD6.0R (;^ω^)
883 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 17:10:41 ID:346dJ8KD] つーか、Perlで測ってどうすんだよボケ。 まるで意味が無いベンチマークだ。
884 名前:vvm-man mailto:sage [2006/12/02(土) 17:37:57 ID:reS/o3fC] 何だ。 実際のツールで測ってねぇ上に、そんな怪物マシンかよ。 朝だったんでよく読んでなかった。
885 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 17:39:24 ID:ZjHXEGS3] >883 阿呆はおまえだ。言語が違ったところで高々プラスマイナス2桁ほどしか違わん。 "起動が遅くなる" といえるほど遅いわけでないことを立証する程度にオーダーが わかれば充分なのだから問題は無い。
886 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 18:11:32 ID:ZjHXEGS3] あ、そうそう補足。 スクリプト読み込み時スキャンが問題となるほどのことは無い、と言うだけで 中間言語化が悪であるとは言ってないので念のため。 # ネットワーク越しなら通信速度がおそらくボトルネックになるだろうから # 圧縮可能なら中間言語化してその際ついでにラベル解析るのは # むしろ妥当と思われます。
887 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 20:05:11 ID:8NIJ4z5J] >言語が違ったところで高々プラスマイナス2桁ほどしか違わん。 2桁って事は40msec→4000msecだな。大きく違うように思えるんだが。 せっかく計ってくれたんだが、やっぱり実際のツールでないと意味が無いぞ。
888 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 22:35:44 ID:346dJ8KD] >>885 ドアホかお前。知能0だな。 どんなPerlのプログラムで測ったのかも示さない糞が。 それでベンチマークとったつもりなんだから笑える。 お前のような糞は黙って死ね。
889 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 22:53:47 ID:zKHoHUMu] ID:ZjHXEGS3さん、薄い知識をフルに使っても…^^;
890 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 22:59:15 ID:ZjHXEGS3] >887 と言うわけでDelphiで書いて謀ってみた。 入力データは880と同じ内容だが、改行コードはCRLFに変換したものを使用した。 以下の条件で約480msec差。 [計測条件] 対象スクリプト:ランダム生成したスクリプト10万行、内ラベル10001行(10%) PC:PIII866x2,メモリ2G,W2K プログラム言語:Delphi 計測方法 GetTickCount、4回実行で最初の1回を捨てた3回の平均値 >888 論破されたら別理由でっちあげか。必死だな。
891 名前:計測部(スキャンなし) mailto:sage [2006/12/02(土) 23:00:05 ID:ZjHXEGS3] procedure TOKBottomDlg.NoScanBtnClick(Sender: TObject); var list:TStringList; start,stop:Cardinal; begin list := TStringList.Create; start := nowmsec; list.LoadFromFile( FileNameLabel.Caption); stop := nowmsec; list.Free; TimeLabelS.Caption := IntToStr(stop - start); end;
892 名前:計測部(スキャンあり) mailto:sage [2006/12/02(土) 23:00:49 ID:ZjHXEGS3] procedure TOKBottomDlg.ScanBtnClick(Sender: TObject); var list,labels:TStringList; start,stop:Cardinal; line: String; i: integer; begin list := TStringList.Create; labels := TStringList.Create; start := nowmsec; list.LoadFromFile( FileNameLabel.Caption); for i:=0 to list.Count-1 do begin line := Trim(list.strings[i]); if( length( line ) = 0 ) then continue; if( line[1] = '*' ) then begin delete( line, 1, 1 ); labels.Add( Concat( line, '=', IntToStr( i ))); end; end; stop := nowmsec; list.free; labels.free; TimeLabelN.Caption := IntToStr(stop - start); end;
893 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:04:36 ID:ZjHXEGS3] Delphi使うのは10年ぶりなのでちょいと無駄はあるかもしれん。 ファイルのロードにTStringList.LoadFromFileを使用したのは>>870 にあわせたため。 # TStringList.LoadFromFile、ものすごく遅いな。27〜28秒かかってる。 W/O Scan #1 28078 #2 28687 #3 28953 #4 29219 W/Scan #1 28625 #2 29125 #3 29453 #4 29719
894 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:05:29 ID:ZjHXEGS3] 訂正:27〜28秒 ⇒ 28〜29秒
895 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:16:52 ID:ZjHXEGS3] あ、そうそう補足。 >893でも書いたとおり10年ぶりなこともあり古いバージョンのDelphiを使っている。 最近のバージョン(ってBorlandなくなったんだっけ?)ではこの時間より 速いかもしれないし、遅いかもしれない。
896 名前:名前は開発中のものです。 mailto:sage [2006/12/02(土) 23:55:37 ID:lXvaYQxz] なにこの変な空気
897 名前:名前は開発中のものです。 mailto:sage [2006/12/03(日) 07:45:41 ID:Pf/Dcb2V] >891-892のコードを試してみた。 シナリオファイル:約5.6MB、100000行(内ラベル10000行) PC:Pen4 1500MHz、メモリ256MB、win2000 言語:Delphi7とTurboDelphi timeGetTimeを使用。 Delphi7 TurboDelphi >891 >892 >891 >892 141 250 125 187 140 250 125 203 141 250 125 203 Delphi7で110、TurboDelphiで80ミリ秒程度の差が出てる。 「起動時に全シナリオを走査して、ラベル位置を内部的に把握しておく」ってのはありかも。 ただ、上から一行づつラベルを検索するコストがどの程度かって事にもよるけど。 ># TStringList.LoadFromFile、ものすごく遅いな。27〜28秒かかってる。 いくらなんでも遅すぎるな、それ。 ファイルがでかいのか、Delphiのバージョンが古いのか、裏で何かが動いているのか...
898 名前:名前は開発中のものです。 mailto:sage [2006/12/05(火) 05:43:16 ID:o7a/zfXd] もーにん members3.jcom.home.ne.jp/jellyjam/p/novel20.zip ・サブルーチン(!Gosub, !Return) ・一部の画像をキャッシュしておく機能 ・テキスト背景の濃度を調節できるようにした ・その他ちょこちょこ手直し サブルーチンの使い方はソース読むなりして知れ!( `д´)甘ったれるな!氏ね! 他に目に見えないところの変更点を挙げるなら、背景の描画方法も変更してます。 お陰でちょっとだけ計算量増えた(;´Д`) そのうち実装するであろうスプライトのZ値を考慮する形での改造。 計算量が増えたこともあって、トランジションするときはなるべく「Direct3Dを使う」にチェック入れてね。 こっちのほうが明らかに負荷が少なくてCPUにやさしいので。 ラベル検索について。 いろいろ試してくれてありがとう! 特に LoadFromFile の読み込み時間のことはあんまり考えてなかったので参考になった。 結果から計るに、やはりファイルは適度に分割してもらなくてはな。 つーかこのスレで Delphi のコードをみることになるとは思わなかったよ。 つд`)グス 長くなったので続く↓
899 名前:名前は開発中のものです。 mailto:sage [2006/12/05(火) 05:44:59 ID:o7a/zfXd] やっぱり「ラベルの位置をあらかじめ把握しておく」という考え方がベストだと思う。 具体的には C++ のヘッダファイルみたいに宣言するか…、もしくはシナリオファイルを 別売のコンパイラにかけて、ラベルを抽出・定義したファイルを生成してもいい。 この方法なら、シナリオファイルを読むとき同時に対となるラベル定義ファイルを読むことで、 実行するシナリオファイルの全ラベルの位置を知ることができる。 そして実行時に余計な抽出作業をしなくてすむ。 短所として、今みたいにシナリオファイルを書いて即実行テスト、みたいな瞬発力は失われる。 ただ、実行時のパフォーマンスと天秤にかけたとき、どっちが優先されるべきか考えたら やはり犠牲になるのはこちらだろうと。 アドバイスとして「起動時に全シナリオを走査して〜」ってのを挙げてもらったけど、 そもそもラベルのデータって「ノベルクラス」が保持すべきデータだと思うのね。 こういった、できるだけデータを隠蔽しようとする姿勢が、これまで目指してきたカプセル化に 適ってると思うし(実際のコード内容がどうなってるかはともかく!)、 「データを起動時から終了時までグローバルに保持する」ってのにはちーと抵抗があるなぁ。 ノベルクラスがおはようからお休みまで存在するような構造ならいいんだろうけど…。 もちろん、上の方法で結果が出ないようなら他のどんな方法でも試さないといけないだろうな。 目的と手段を見誤らないようにしなくては。 ともあれ他の機能を充実させることのほうが先だ。やることはまだあるし! つかなんかよくわかんあくなってきた まだ眠いし
900 名前:名前は開発中のものです。 mailto:sage [2006/12/07(木) 02:47:55 ID:SWdlq209] そして誰もいなくなった・・・・ THE END
901 名前:名前は開発中のものです。 mailto:sage [2006/12/09(土) 09:10:42 ID:h/zOxyeP] >>893 結局お前がバカだったって結論だな。 なんでPerlでやったの?アホは死んでね。
902 名前:名前は開発中のものです。 [2006/12/09(土) 11:38:50 ID:jj3TKGxP] 勝利宣言乙。
903 名前:名前は開発中のものです。 mailto:sage [2006/12/09(土) 14:08:11 ID:8/hGWVEK] まあどっちもどっち、薄い知識を頑張って見せてもぼろは出るさ。
904 名前:名前は開発中のものです。 mailto:sage [2006/12/10(日) 11:45:36 ID:OYpqnO30] うおおぉぉおおぉやる気でねえーーーーーーーーー >>899 から MainTex.Visible := False; の一行しか書いてないぜ
905 名前:名前は開発中のものです。 mailto:sage [2006/12/11(月) 13:35:07 ID:ScPcGfEF] がんばれ
906 名前:名前は開発中のものです。 mailto:sage [2006/12/12(火) 06:12:08 ID:yBbIoFAM] なんとかやる気出してみた。 簡易的なスプライトの表示はできるようになった。 立ち絵とか描いて members3.jcom.home.ne.jp/jellyjam/img/stand.png 表示 members3.jcom.home.ne.jp/jellyjam/img/sprite1.png 文字を消した状態。画像のフチもきれい! members3.jcom.home.ne.jp/jellyjam/img/sprite2.png Zオーダーのテスト。フキダシはトランジションよりも上位にあるので影響を受けてない members3.jcom.home.ne.jp/jellyjam/img/sprite3.png スプライトの移動とか拡大とかできたほうがいいんじゃねとか考えてみた。 実際的なコードの青写真はできたつもりなので、あとは実践するのみだぜ? つか絵とか描くの超めんどくせええええええええええええ 久しぶりにペンタブ使ったけど、最初通電しなくて壊れたかと思った いろんなとこにガンガンぶつけてたらいつのまにか使えるようになったよ( ´∀`)
907 名前:名前は開発中のものです。 mailto:sage [2006/12/12(火) 08:32:57 ID:h7Kt54mJ] おまいノベル作るより絵を上手くして公開汁と直感的に思った。
908 名前:名前は開発中のものです。 mailto:sage [2006/12/14(木) 05:56:41 ID:mSVXN2jW] ここから独り言──────── スプライトクラスに簡易的なタスクシステムを仕込んでみる。 複数の移動先座標を同時にプッシュすることで、複雑な動きもできるかも。 応用として、プッシュされた座標等から円運動やベジエみたいな軌跡も作れる…はず。 作ってて気付いたけど、サイズの違う画像へクロスフェイドさせるとき、 変化前の画像座標と変化後の画像座標は同じじゃ駄目なことに気付いた。 えーと、つまりスプライトを描画するとき、単純に左上の座標を基準にしては駄目だってこと。 こうじゃなくて こうならないとおかしいよな ┏━┳──┐ ┌────┐ ┃ ┃ ..│ │ ┏━┓ │ ┣━┛ ..│ │ ┃ ┃ │ │ ..│ │ ┗━┛ │ └────┘ └────┘ こういうふうにしたいときもあるし ┌────┐ │ │ │ .┏━┓│ │ .┃ ┃│ └─┻━┻┘ 画像がキャラクタのだったりすると、とくに気になっちゃう。 変化前の座標と変化後の座標、両方を指定しておく必要がありそう。 こんなのあたりまえの話か…。 ────────ここまで独り言 >>907 ( >д<)、;'.・ ィクシ
909 名前:名前は開発中のものです。 mailto:sage [2006/12/15(金) 23:37:18 ID:ughJgmM0] おーい、だれもいないのー? members3.jcom.home.ne.jp/jellyjam/p/novel21.zip ・スプライト機能 ・暫定的な措置として、ゲーム中にマウス中ボタン押しでコンフィグに突入 ・よくわからないが垂直同期(?)ってやつを待つようにしたような気がする スプライトできたよー。詳しくはサンプルを見ておくれ。 背景も同じようにタスク仕様っぽくしたから、組み合わせていろいろできるかも。 ちなみにエフェクト中にボタン押したりするとエフェクトカットできるよ。 けっこうよくできてるなぁ。<自分でいうな 垂直同期はどんな役割があるのかよくわからないのでそのうち元に戻すかも。 なおこのバージョンは問題を内包していることに注意。 タイトル画面の「スタート」を押したあと、マウスボタンやエンターキーなどを連打しているとリストの範囲エラーが出るの。 なんとなく原因はわかってるような。 あとこれは問題とまではいえないかもだけど、背景フェイドアウト時にスプライトごとフェイドアウトしてくれないのが困る。 うー、なんというか説明しづらいので割愛。アプリが落ちたりはしない程度の不具合ってことで。
910 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 14:01:24 ID:iJHEhuvY] >>909 立ち絵の移動中にリストのなんちゃらとか出て終了すら出来なくなってるぜwww 強制終了はできた。
911 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 16:20:53 ID:c5UW9I5g] >>910 (;゜∀゜)ウホッ それはこちらでは再現できてないなぁ。 たぶんそのエラーは移動処理の終了と同時にで発生してるんじゃないかと推測してるんだけど。 >>909 でも書いたけど、リストの範囲エラーが出てるのは確かなので、その辺を見直してみたぜ。 リストの範囲を超えた参照をしそうな場所のチェックを厳しくしてみた。 members3.jcom.home.ne.jp/jellyjam/p/novel21_2.zip これは差分のみなので、>>909 に上書きしてください。 とりあえずおれの環境ではエラーはでなくなったみたいです。 ついでに((((;゚д゚)))ガクブルのテストしてます。 サンプル参照。
912 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 19:12:33 ID:iJHEhuvY] エラー出なくなったよGJ!
913 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 19:50:34 ID:c5UW9I5g] >>912 おおーありがとう! よかったよかった。 不具合に気付いたのでさらに手直し。 エフェクトをかける命令において、エフェクトに要するフレーム数を指定するんだけど、 その数値が小さい場合にエフェクトスピードを x1.0 以外にしたとき表示が変になってたので直した。 members3.jcom.home.ne.jp/jellyjam/p/novel21_3.zip この修正でガクブルの表示が直るはず。不具合はもうないかな? 最適化がすんだらデータの保存に取り掛かる予定。 いよいよ最終盤か…。
914 名前:167 mailto:sage [2006/12/16(土) 20:54:09 ID:Q/zqu0Nt] 御久し振りです、実はスランプに陥っており全く進んでおりません(´Д`) ですが、製作は継続致しますとも…約一週間前から、製作を再開致しました。 現在、デバッグ用のシステムを製作中…それを終えたらセーブ/ロードを実装して、Ver1.0は感性でしょうか(´Д`)
915 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 21:01:47 ID:z6KIXRa8] !BgDraw Transition, -10 で余分なクリックが要求されるっぽい。
916 名前:名前は開発中のものです。 mailto:sage [2006/12/16(土) 21:40:28 ID:c5UW9I5g] >>915 クッ! 所要フレーム数にマイナス値を指定するとは、なんてひどいやつだ! ありがとう! マイナス値が指定されたら無視するように4秒で直した。 こういうミスはまだありそうだな。 members3.jcom.home.ne.jp/jellyjam/p/novel21_4.zip ちなみに !SpriteDraw はちゃんとそういうふうになってた。本当に簡単なミスだったようだ。 所要フレーム数だけじゃなくて、その他のスプライト番号とかも変な数値は弾くようになってるんだぜ。 まったく、この開発者志向・ユーザ志向には恐れいるばかりだよな!( ´,_ゝ`) ちなみに !BgDraw CrossFade, 0 とか !BgDraw Transition, 0 みたいにフレーム数に 0 が指定されると、 !BgDraw Immediate, 0 と同じ振る舞いをするようになってる。 Immediateは即時反映、エフェクトなしの合言葉。第二引数は無視されるぜ。 つーかマニュアルが無いのが問題だよな。 おれは作るの面倒だから、代わりに誰か作ってくれよ。無償で。何の対価も無く。非営利法人よろしく。包み込むような愛を以って。 …昨夜はあんまり寝てないせいか変なテンションだと自覚している。 今日はもう(´Д⊂ ネルポ
917 名前:名前は開発中のものです。 mailto:sage [2006/12/18(月) 10:18:38 ID:TGH4Q3EG] 頑張れ〜
918 名前:名前は開発中のものです。 mailto:sage [2006/12/20(水) 00:43:20 ID:fK7YcqYj] members3.jcom.home.ne.jp/jellyjam/p/novel22.zip ・背景の描画方法がちょっと変更? 少し面倒になった ・!SpriteLoad/!SpritePos においてスプライトのサイズ・座標を即座に反映させるようにした ・キーボードのボタン設定ができるようになったかも 今回もソースは見難いぜ。気をつけろ。 最適化するとか言っといてこれじゃあ、立つ瀬がないってものよ。 命令名と定数名が衝突したりしてるし。分かりづらい。 おまけ機能のボタン設定は、キーの重複チェックをしてないので変なことしないように注意な。 ところでスプライトを動かすとき、垂直同期?って奴を待ってないとティアリングが発生するみたいだ。 もう! なんなのこれは! ばか! たいした処理じゃないのになんでこうもうまくいかないのか。 あとちょっと聞きたいんだけど、フルスクリーンからウィンドウモードに復帰するとき、 他のウィンドウが左上に寄っちゃうんだけど、これどうしたらいいの? 再現性があるんだかないんだか…、なるときもあるしならないときもあるから困ってるんだけども。
919 名前:名前は開発中のものです。 mailto:sage [2006/12/20(水) 01:08:52 ID:8V7aEVfE] EnumWindows GetWindowPlacement
920 名前:名前は開発中のものです。 mailto:sage [2006/12/20(水) 22:22:22 ID:CA5iLqvy] >>918 ttp://gamdev.org/up/img/8396.zip 俺がむかーし作ったのあげる。適当に使ってちょ。著作権フリー。
921 名前:名前は開発中のものです。 mailto:sage [2006/12/23(土) 17:50:46 ID:vy9OXCiI] >>919-920 やっぱ自分で何とかしないとだめかー、めんどいよな。 ときに、どういうときに左上によってしまうのか、いろいろ試しているうちに分かってきたぞ。 (1)ウィンドウモードで起動⇒フルスクリーンモード⇒ウィンドウモード これはほとんどの確立で左上に「寄らない」。しかし、 (2)フルスクリーンモードで起動⇒ウィンドウモード この場合、ほぼ100%左上に寄ってしまうようだ。 んで、教えてくれたウィンドウを列挙して状態を復元して…、ってのをやってみたけど、どうにもうまくいかないぜ。 具体的には、位置は復元できるけどサイズが元に戻らない。 復元するタイミングを変えてみたりしたけどうまくいかなかった。 もしかしたらDirectXでスクリーン解像度を変更してるのが原因なのかもしれないなぁ。 もうあれだ、この不具合は気付かなかったことにしてセーブ・ロードを作り始めちゃうか。
922 名前:名前は開発中のものです。 mailto:sage [2006/12/25(月) 00:14:40 ID:8rnjShSU] おとなしく以下の手順でヤレ。 全画面化 (1) 画面全体を覆うサイズでTOPMOSTのウィンドウを表示 (2) Direct3D初期化(解像度変更) ウィンドウ化 (1) 画面全体をDirect3Dのオーナウィンドウで覆った状態で解像度元に戻す (2) ウィンドウサイズを戻す
923 名前:名前は開発中のものです。 mailto:sage [2006/12/25(月) 23:15:12 ID:EgMygRvY] あー、だめだ 完全に詰まった感がある。 ちょっと悩む時間をくれ…。
924 名前:855 mailto:sage [2006/12/27(水) 18:21:13 ID:U+WOWC8d] サンプルタイトル画面の背景を動きのあるフィルムに変更。 実際にフィルムを作る部分の解説を少し追加しました ヘルプのチュートルアル-作ってみる-演出をつける。に簡単な解説があります。 もしくは、nnnExe.exeを実行し、 [NEW GAME] - [チュートリアル] - [タイトルのバックスクリプト]で動く解説が確認できます
925 名前:vvm-man [2006/12/29(金) 03:01:49 ID:tgdf+svf] スクリプトの実行速度を改善してみた。 と言ってもコンパイラ側で連結をするようにしただけだが。 あと、画面構成がどれくらいカスタマイズできるかやってみた。 いつもの(デフォ) ttp://f58.aaa.livedoor.jp/~lionehar/new/ ちょっといじった画面+地震スクリプト実行 ttp://f58.aaa.livedoor.jp/~lionehar/talk/
926 名前:名前は開発中のものです。 mailto:sage [2006/12/29(金) 03:11:45 ID:zUVxDgus] >>925 相変わらずすごいなー 擬似ウィンドウにしてるのは意味あるの? 例えば、ツール類が横に来るとか 表示画面は中央固定でもよくない?
927 名前:vvm-man mailto:sage [2006/12/29(金) 03:31:45 ID:tgdf+svf] >>926 サンクス。 擬似ウィンドウは今のとこ大した意味はないなぁ。 ただ、ゲーム画面の大きさを固定してるないと、作り手側が画像の配置やら、文字の開業やらの計算が出来ないからって理由ですな。 あーあと、これのメリットとして、ウィンドウ自体をモジュール化してAPIのようなもんにしてるので、やろうと思えば、一つのブラウザ画面に複数のゲームのウィンドウを立ち上げることも可能っちゃあ可能かな。 ただ、そうするとゲームのシステムの殆どを大域で制御してやってるので、互いに不具合起きないように組むのが面倒だろうな。 あと、中央固定にしないのはぐりぐり動かせるのを自慢したいのと、 無料レンサバ使ってるので、広告への配慮。 無料レンサバでもプロバイダに文句を言われずに、ジャンジャンバリバリ動くゲームを作るってのがコンセプトの一つなので、広告邪魔と言われてもそこは譲れない。
928 名前:名前は開発中のものです。 mailto:sage [2006/12/29(金) 04:43:12 ID:zUVxDgus] 個人的にはweb上でこれだけ動かせるなら使いたいね ぜひがんばってもらいたい
929 名前:名前は開発中のものです。 mailto:sage [2006/12/29(金) 09:14:47 ID:nhf1Rnll] >>924 ってどっかのコピペ?それとも本物のたいにゃん先生?
930 名前:名前は開発中のものです。 mailto:sage [2006/12/30(土) 00:32:41 ID:3VaFPP0X] おらああああああああ仕事納めきたぜーーーーーーーーーーーー ロバートがクリスマス休暇でブリテンに帰っちゃったのでなにかと大変だったぜ! 氏ねよプロテスタント野郎!ファックユアジーズだぜ セーブロードは12%ぐらいできた。 いまデータ読み込み用の手続きを各クラスに仕込んでいる最中だ。 もうなんか超つまんねえ作業だしすげえ面倒だ。心が折れそう。 ところでひとつのデータサイズが3MBぐらいになるんだけどこいつをどう思う? >>921 の問題は、なにやってもうまくいかないのでもう後回しだ。 そのうちソース晒すので、試行錯誤のあとをソースから読み取ってほしい。 今やってる作業は一段落つくまでもうしばらく掛かるから、公開できるのは先になると思う。 書き込みがなくなるかもしれんが、投げ出したりはしないつもりなのでそのときまで正座して待っていてほしい。 つか>>924 これすごくね? ツールもそうだけど、とくに猫語へのこだわりが。