1 名前:名前は開発中のものです。 mailto:sage [2011/02/03(木) 13:12:07 ID:6MBIOEHD] ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。 自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。 マルチポストはやめましょう。個人叩きも禁止です。 ※スレで質問をするときは※ KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、 FAQ、Google等で調べてからにしましょう。 努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 吉里吉里2/KAG3雑談質問スレ_過去ログ ttp://www.geocities.jp/kirikiri_log/ 吉里吉里ダウンロードページ ttp://kikyou.info/tvp/ ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は 初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。 ■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。 大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。 ■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる 数々のTipsが記載されています。 ■TJSをもっと使うために ゲームのインターフェイスをカスタマイズしたい、また KAGの命令に無いことをしたくなったらまずここを読んでみよう。 必要に応じて>>3-5 の公式掲示板や講座等を併用してください。 (併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります) 前スレ ■吉里吉里/KAG/TJS雑談質問スレ■その22 hibari.2ch.net/test/read.cgi/gamedev/1285897465/
782 名前:777 [2011/05/08(日) 21:01:40.00 ID:wz4fTqUM] ↑の自己解決です。 [image storage="&f.image[0]+'_'+f.image[1]"]で、ファイル名を「A子_笑顔」にすれば良いみたいですね。 アドバイスをくださった方、ありがとうございました。
783 名前:名前は開発中のものです。 mailto:sage [2011/05/08(日) 21:20:00.20 ID:nlpHN7U+] >>781-782 あー、それはそれで良いんだけど 複数のキャラを同時に取り扱うとなると、ifタグの嵐の予感 自分なら、A子というのをキャラ番号0として tf.ch_name[0]='A子'; tf.ch_image[0]='a-ko_egao.png'; tf.ch_hitpoint[0]=100;〜とかにする (ほんとうは辞書配列使いたい) それが動いてからで良いんで、検討してくれ
784 名前:777 [2011/05/08(日) 21:51:45.87 ID:wz4fTqUM] >>783 なるほど……。 キャラの通し番号とはそういうことですか。 辞書配列も勉強してみます。 ありがとうございました。
785 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 08:37:45.28 ID:+wIIRPAN] 辞書配列を使うなら、俺はこんな感じでつかう tf.ch_ = []; tf.ch_[0] = %[]; tf.ch_[0]['名前']='A子'; tf.ch_[0]['CG']='a-ko_egao.png'; tf.ch_[0]['HP']=100; ところで、クラスをつかった場合、どう書けばいいんだ?
786 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 08:47:46.92 ID:Y3oLpatn] class Character {
787 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 08:50:35.37 ID:s4wJWQ/C] フルスクリーン中はムービー再生をワイド画面にしようと思ったんですが フルスクリーン中は画面の解像度を変更できません これはもう諦めるしか無いですか?
788 名前:名前は開発中のものです。 [2011/05/09(月) 09:56:27.40 ID:oiYst28/] あなたのゲームは解像度がコロコロ変わるゲームなんですか?
789 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 10:03:14.82 ID:q/llowTS] 解像度と言うかビットレートの問題だわさ
790 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 13:21:49.52 ID:ZnWxzZSp] ttp://green.ribbon.to/~erog/Wide.html これ(seきらら/メルクリアのムービー比較)のことだろ どちらも吉里吉里だけど標準では対応していないと思われ
791 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 14:40:09.35 ID:s4wJWQ/C] 普段の解像度は4:3なんだけど、ワイドモニタでフルスクリーンにすると 左右が真っ暗で何かやだから、ムービーの時だけでもワイドにしようと思ったんだけど 思ったように動かない 800*600を1024*576にしてフルスクリーンにすると、左上の(0,0)が変なところにくるし 吉里吉里デフォの機能でやるのはお手上げです
792 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 15:30:45.89 ID:q/llowTS] それ、もしかしてscwidthあたりをその時限定で変更したら良く無い? と言っても、現在の画面サイズをどの変数で持ってるのか知らないけど
793 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 15:46:48.69 ID:s4wJWQ/C] ・最初から解像度をワイドにしておく→フルスクリーンにしても表示OK ・途中でワイドにする→フルスクリーンにすると画面位置がなんかおかしい ・フルスクリーン中に解像度変更→出来ない フルスクリーンでプレイしている時だけ、ムービーをワイドに引き延ばして再生したい・・・ というのが希望なんですが、上記の通り上手い具合に行かないというのが現状です スクリプト内では「Window.mainWindow.setInnerSize(width, height)」でサイズ変更してます
794 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 16:02:38.67 ID:oiYst28/] はじめからワイドにしろ おまえのゲームおかしいぞ
795 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 17:05:50.17 ID:q/llowTS] ダメなのか それじゃどうしようもないな ただ>>794 じゃないけどムービーだけワイドにすると、単純なユーザーの声として『ゲームもワイドに汁!』って突っ込まれるだわさ
796 名前:名前は開発中のものです。 mailto:sage [2011/05/09(月) 20:05:12.86 ID:vgIJxJ6a] 初回起動時にウィンドウを出して、 解像度をプレイヤーに設定させる。 以降の設定変更は次回起動時に反映、 というのが商業ノベルゲームでよくある手法。 けど同人だと見ないよね。やっぱ面倒くさいからか。
797 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 12:32:31.38 ID:IPfqxHCQ] 栞ひとつ400kになるのが辛いな。なんでシナリオの2倍になっちゃうんだよ・・・ 10個で5メガになるし。 何よりテストプレイのたびに固まって辛い。
798 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 12:44:23.57 ID:/ry4AeiC] うちは一個1mから2m どう言うテスト環境だよと突っ込みたいがどうしても減らしたいならまずマクロを見直せ
799 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 20:12:34.77 ID:IylbAiKT] サムネイルのせいじゃね?
800 名前:名前は開発中のものです。 [2011/05/11(水) 21:37:34.37 ID:HYpL6U9h] バックログやマクロを保存してるとかじゃないかな。セーブ、ロードを重ねる度に重くなるならそれ。起動し直したら治る場合は無駄にオブジェクト量産してるとか、タイマーやハンドラが生き残ってるとか。そうなると人に聞いてやっとこさの段階ではちょっと骨かなぁ。 あとは配列が必要以上に肥大化する書きかたしてるとか?
801 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 23:25:13.03 ID:7lwqfPrl] トランジションをするとき、backの背景とともに前景が同時に現れるようにすることはできますか? たとえば、教室から校庭に移動したとき、校庭と一緒に、そこにいる前景のキャラの立ち絵が現れる、というような…。
802 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 23:29:11.40 ID:N7DwFyxQ] >>801 前景のbackにキャラ読み込んどけばいいよ @image layer=base page=back storage=教室 @backlay @image layer=base page=back storage=校庭 @image layer=0 page=back storage=立ち絵 @trans method=crossfade time=1000 @wt
803 名前:名前は開発中のものです。 mailto:sage [2011/05/11(水) 23:37:34.61 ID:7lwqfPrl] >>802 ありがとうございます。がんばります。
804 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 09:20:07.57 ID:ueDlXx0D] >>798 ;saveMacros = false;だよ。 >>799 サムネイルも保存してないよ。 >>800 起動も遅いです。栞を辿るで はい を押すと、1分くらいかかります。 固まった後、しばらく待つとBGMが流れ、更に待つと、 画面上からバーコードの様に次々と画面が更新されていきます。 こうなったら、now loading...画面 をつくりたいです・・・
805 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 09:22:09.75 ID:mCjziqBn] 400KBでそんなんになるのは 違うところに問題があるのでは
806 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 09:26:45.44 ID:ueDlXx0D] 薄々感づいてましたが、やはりPCか 何年も前から落としたのに落ちてないとか書いてたのも私です。 ソレからPCかえてませんし。寿命ですよね。 (ニコ動にコメントしようとするだけで固まって落ちる位なので・・・) すいません。以下スルーでお願いします。
807 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 16:05:08.42 ID:sT4GEHfQ] この流れでちょっと質問 セーブデータの圧縮と暗号化ってどっちがいいとかある? 圧縮も暗号化を兼ねてるようだけど 暗号化より復元しやすいとか読み取るのが遅いとか そういうのなかったら若干サイズも軽くなる圧縮にしようと思うんだが
808 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 17:46:19.17 ID:LFmVxlym] 何も考えずに圧縮でいいよ
809 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 18:37:00.24 ID:GgYmobKQ] メッセージレイヤに、透過pngを使っても 実際には透けずに白くなってしまうのは何故でしょう?
810 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 18:42:09.79 ID:GgYmobKQ] homepage1.nifty.com/gutchie/kirikiri_kag2/faq_error104.html こちらを読んで自己解決しました。すみません。
811 名前:名前は開発中のものです。 mailto:sage [2011/05/12(木) 22:28:39.62 ID:uBm63IiO] たしか2つくらい前の過去ログにもあった希ガス
812 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 00:22:09.02 ID:85dtmldw] え、あ、はい
813 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 00:22:49.43 ID:85dtmldw] 誤爆!
814 名前:名前は開発中のものです。 [2011/05/13(金) 14:50:19.14 ID:xi4RpOc2] ex14.vip2ch.com/test/read.cgi/news4gep/1302080425/ ttp://aiofvip.web.fc2.com/TO/game/msLIST.html あのVIPエロゲ制作所出身の 愛◆LOVV.XWD8o が送る本格派サスペンスギャルゲー ttp://www1.axfc.net/uploader/C/so/138728.zip
815 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 18:28:15.49 ID:XtyteHfT] ぐあああ、半透明のセリフウインドウがどうしてもできねえ 前作作った時はできてたのに、2つのpngファイル並べて比較してもどこが違うのかわかんねえ うおおおおおおああああああああああああぁぁぁぁあああ
816 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 18:33:47.07 ID:1ByYjp7G] >>815 >>810
817 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 18:39:04.62 ID:kWgQ7dW8] 意外とひっかかりやすいよねこれ 俺も一回悩んでリファレンス読み返したことがある
818 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 18:45:16.13 ID:XtyteHfT] ;layerType = ltAddAlpha;を追加するってやつ? 見てみたけど既に追加されていました。 だけど前回使ったpngファイルは透けて、今回のは透けない。何が違うんだ ああああああああああ
819 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 19:02:23.24 ID:TVAnpJIr] ;
820 名前:名前は開発中のものです。 mailto:sage [2011/05/13(金) 19:12:26.28 ID:kWgQ7dW8] >>818 >>810 を よく よめ
821 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 01:07:55.39 ID:CeDwIqjC] メッセージ枠の画像を「Config」で指定したのですが、 実行するとエラーが出て、 「メンバ"sf"が見つかりません」とでます。 特に変数も使ってないので関係ないと思うのですが… どうしたら解決できるでしょうか?
822 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 01:20:35.39 ID:IJy5r17p] しらね
823 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 09:17:52.45 ID:p3TsZSfb] んー incontextof kag をつけ忘れてるとか?
824 名前:名前は開発中のものです。 [2011/05/14(土) 16:07:34.47 ID:znBsX5Gm] すいません、製作途中のゲームを別のノートでフルウィンドウで起動したら、解像度が落ちたのですが原因はなんでしょうか? (PCはVista、ノートは7)
825 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:18:19.15 ID:GezN4S7I] フルウィンドウってフルスクリーンのこと? それぞれのPCの画面の解像度と、ゲームの解像度くらい書きなよ さっぱりわからん
826 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:23:55.31 ID:SRhjdtp+] 現行吉里吉里の標準動作は「自動」で、「アスペクト比があう画面があれば一番近いものに変更、なければ解像度変更せずにソフト側で拡大」 なので、環境によって動作がまちまちになる。 それぞれのPCの環境と画面サイズとデバイスの名前、ゲームで指定しようとした解像度、とか全部かかないと具体的な原因はわからないと思われ。
827 名前:名前は開発中のものです。 [2011/05/14(土) 16:36:15.28 ID:znBsX5Gm] ありがとうございます 環境は両方ノートで製作側がVistaのcore2DUO、解像度落ちた方が7のcorei5vPro、画面サイズは800×600、吉里吉里最新のやつで解像度は350です
828 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:38:16.29 ID:GezN4S7I] >>826 俺もう無理 あとは任せた
829 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:42:21.93 ID:SRhjdtp+] ごめん、俺も無理
830 名前:名前は開発中のものです。 [2011/05/14(土) 16:47:55.02 ID:znBsX5Gm] すいません、ゲーム解像度が800×600でpc解像度が両方1280×800でした 別に製作だけなら解像度変わらない方使えばいいんですが、配布考えるとこわくて・・・
831 名前:名前は開発中のものです。 [2011/05/14(土) 16:52:11.44 ID:znBsX5Gm] >>825 さん はい、フルスクリーンのことです
832 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:55:03.72 ID:SRhjdtp+] えーと、800×600 の表示に対応してない環境はぶっちゃけ無いので、それにあわせて解像度変わるほうが普通です。 変わらないように見えるのは、デバイスドライバ側でなんか対応してるからでしょう。 ノートPCの画面のプロパティのどっかに設定項目があるはずで、それの設定はユーザの責任です。 特に気にする必要はありません。 あと、ソフト側での挙動はは、吉里吉里設定で変更できますから、それを きちんと導入してマニュアルにその旨記載するだけでOKです
833 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 16:55:22.37 ID:p3TsZSfb] >>827 吉里吉里で使用しようとしていた画面サイズが800×600なんだね CPUのスペックはあんま関係なくて画面についてのスペックが重要 ここでいう解像度っていうのはインチ当たりドットとかじゃなくて デスクトップを右クリックして出てくる画面のプロパティにあるような 画面のサイズのことだよ、大小いろいろな候補があって選べるだろ 1024×768とか800×600とか たいていは候補のうちで(スクロールしなくて済む範囲の)最大のに してると思うけれど それぞれのパソコンについて、どんな候補があるかっていうことを >>826 は聞いてる
834 名前:名前は開発中のものです。 [2011/05/14(土) 17:06:35.52 ID:znBsX5Gm] >>832 さん、>>833 さん ありがとうございました それ聞いて安心しました 自分の方はpcいじってみて、ゲーム配布にはマニュアルで注意事項書いておきます
835 名前:名前は開発中のものです。 mailto:sage [2011/05/14(土) 17:34:52.43 ID:Wf5x1zNt] とりあえずの知識として ノートに限らず液晶ディスプレイは限界解像度は別に、苦手な解像度が必ずある それは普通のディスプレイにもあるんだけど、とにかくそれを無視した解像度だと画面ボケが恐ろしく酷い 昔のモニターは特に だから通常はメーカーがそれを調整して苦手な解像度は選べないようになっているけど、ソフト側はそんなの知らんがな!って事でこの解像度で表示しろ!ってやる するとウィンドウズ側が間に入って君に決めた!って表示するから一見ユーザー側はあれっと思うけど、実際はPC的には双方の折り合いつけた最適の表示状態
836 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 20:33:00.38 ID:KxxpsHFd] セリフ毎にラベルを配置してセーブできるようにしたんだけど 立ち絵が出ている時にセーブしてロードすると、立ち絵がない状態で始まる これを防ぐには、毎回立ち絵を描かないといけないかな?
837 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 20:51:39.55 ID:B0lL8qtx] >>836 セーブ時の画面表示状態は栞に記憶されるはずでは? ラベル直後に、画面をクリアしたり再描画するマクロを入れてるとか?
838 名前:名前は開発中のものです。 mailto:sage [2011/05/17(火) 21:19:38.42 ID:KxxpsHFd] >>837 いや、そんなこと何もしてないです。 imageタグで立ち絵表示 *ラベル|ラベル見出し 「セリフ」[l][r] となっていて、クリック待ちの間にセーブ。 このデータをロードすると、立ち絵だけが表示されない。
839 名前:名前は開発中のものです。 mailto:sage [2011/05/18(水) 13:44:43.43 ID:N3LIrLW7] 「template」フォルダをコピーした素の吉里吉里に戻して 何が違うか考えてみることだあね
840 名前:名前は開発中のものです。 mailto:sage [2011/05/18(水) 20:29:37.72 ID:7Rw30dav] それ純正の吉里吉里じゃなく、会社でカスタマイズした奴じゃない?
841 名前:名前は開発中のものです。 mailto:sage [2011/05/18(水) 20:56:27.20 ID:a8g7dAo4] いわゆる会社マイズってやつだな
842 名前:名前は開発中のものです。 mailto:sage [2011/05/18(水) 23:15:31.10 ID:mGRm0GuN] 遅くてごめん。 >>797 >>798 大概履歴が大きいからだから、一度栞の中を見てみるといいよ。 config.tjs の recordHistoryOfStoreとmaxHistoryOfStoreを 小さくすると劇的に改善したりする。あと、saveDataMode="c"で 圧縮すると更に劇的に。
843 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 00:09:30.66 ID:t8je3hh+] すみませんが、質問させて下さい。 今、tjsでボタンのプラグインを作成しようとしています。 ボタンの数が多いので、配列でボタンの作成をしたので、 配列の番号によって、ボタンが押された後の処理が変わります そのため、クリックした後に参照する関数に、配列の要素数を引き渡したいと思って、 こんな風に記述しました。
844 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 00:12:02.90 ID:t8je3hh+] function Load() { obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn(i)); with(obj[i]){ .setPos(0, 0); .loadImages("img"); } } function btn(i) {System.inform(i);} すると、ボタンは正常に表示されるが、ボタンを押したあとにエラーが発生します。 エラー内容は下記の通り。
845 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 00:30:33.35 ID:CvMRnjxP] 843-844です。規制がかかるのでPC変えました。 ==== An exception occured at systembutton3.ks(38)[(function) onMouseUp], VM ip = 17 ==== -- Disassembled VM code -- #(38) onClickFunction(this); 00000017 calld %0, %-2.*2(%-1) // *2 = (string)"onClickFunction" -- Register dump -- %-6=(int)0 %-5=(int)0 %-4=(int)93 %-3=(int)7 %-2=(object)(object 0x0012F8C8:0x00000000) %-1=(object)(object 0x01C4D840:0x01C4D840) %0=(void) %1=(int)1 %2=(int)0 ---- スクリプトで例外が発生しました 関数ではないかプロパティの種類が違います trace : immediate event 問題はsystembutton.ksにあるようですが、 どこをどう修正すれば動くのか、全くわかりません。 目的が達成されれば、特に記述方法にはこだわりません。 どこが悪いか分かる方、よろしくお願いします。
846 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 08:15:12.54 ID:a8+s4BPe] ぱっと見だとLoad()内のiに値がちゃんと入ってるのかどうかわからん。
847 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 14:00:38.51 ID:0U6RU83c] 843です。 あまり行数を書けなかったから省略してしまったんですが、 実際はiはループ処理をしてる関数から引数で渡しています。 引き渡しができてない可能性は考えたけど、 Load()内で変数の定義をしても同じエラーが出ました。 それから、こちらは書き忘れで申し訳ないのですが、 エラー箇所は配布されてたプラグインの中です。 該当箇所は下記です。
848 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 14:05:14.45 ID:0U6RU83c] function ?onMouseUp(x,?y,?button,?shi{ if(enabled?&&?button?==?mbLeft) onClickFunction( this);//←ここ super.onMouseUp(...) }} 改めてよろしくお願いします。
849 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 14:26:50.62 ID:eauCpkxW] 吉里吉里の不具合らしきことを質問したら 「お前それカスタマイズしてるだろ」で終了という流れは 以前のスレでも見たな 大抵うやむやになっているが、実際はどうなのだろう
850 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 17:20:06.15 ID:Y32dQDBI] >>849 と言うかまず>>839 を試した上でダメだと言うならバグだと思うがまずはそれからだ
851 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:17:18.33 ID:Sgq0bMQc] function btn の返り値はvoidなんだから、そらあかんやろ。
852 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:18:42.11 ID:Sgq0bMQc] SystemButtonLayerをnewするタイミングでbtn関数が評価されちゃっているのがNG。
853 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:41:35.77 ID:ozIfu/zH] 解決法を書くよー。 まず、globalで以下のようなクラスと関数を定義しておく。
854 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:44:27.49 ID:ozIfu/zH] class FuncCall { var func; var args; function FuncCall(func, args*) { this.func = func; this.args = args; } function call { func(args*); } }; function funccall { var obj = new FuncCall(...); return obj.call; }
855 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:48:35.80 ID:ozIfu/zH] FuncCallというのは、引数つきで関数を呼び出すクラス。 funccallというのは、FuncCallのオブジェクトを作って、その関数呼び出しを返すショートカット。 funccall(btn, i) とやると「引数iで関数btnを呼び出す関数」が生成される。 この状態で obj[i] = new SystemButtonLayer(kag, kag.fore.base, funccall(btn, i)); と書けばうまくいくのでは無いかな。
856 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 18:57:07.43 ID:ozIfu/zH] こんな風に書くとFuncCallのクラス定義無しで一発で行けるけど、変態コードなのでお勧めはしない。 function funccall(args*) { return function { shift()(this*); } incontextof args; }
857 名前:843 mailto:sage [2011/05/19(木) 20:32:56.68 ID:eDOJyZBT] >>853 ありがとうございます! 書いてある通りに修正したら、きちんと動作しました。 自分では絶対に思いつきませんでした。 本当にありがとうございます! 他の方もご回答くださってありがとうございます。 これからも精進します。
858 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 21:43:40.52 ID:oS4dIVWF] 初歩的な質問なのかもだけどargs*の*ってどう言う意味なんだろう?
859 名前:名前は開発中のものです。 mailto:sage [2011/05/19(木) 23:07:18.49 ID:oS4dIVWF] 引数の配列変換か 自己解決した
860 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 06:31:21.99 ID:+Mxj9Dzq] 吉里吉里ってGPU使ってくれないの?
861 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 07:19:38.64 ID:X/cL6XGV] どうしてそう思ったの?
862 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 08:32:03.21 ID:+Mxj9Dzq] 自分でもわからない。。。
863 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 09:35:41.87 ID:ZuvEuGx1] まあ、そんな日もあるさ
864 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 13:06:13.26 ID:kSteXd1w] >>842 250kだったファイルがzで10kくらいに落ちた。目の錯覚かも知れないがサンクス
865 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 14:18:22.00 ID:eAwQCbJq] 目の錯覚じゃないよ。 吉里吉里のセーブデータは、ちょっと変わっただけのほとんど内容のデータがずらずら並んでる構造だから、すごく圧縮が効きやすいの。 特に、どこでもセーブ系のプラグイン使ってたりして、改ページ単位でラベル入れてたりするとその傾向が顕著ね。
866 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 14:19:06.24 ID:eAwQCbJq] s/ほとんど内容/ほとんど同じ内容/
867 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 14:24:27.19 ID:EVAFl0uS] >>866 'sed' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
868 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 14:47:34.36 ID:kSteXd1w] 確かに、どこでもセーブプラグイン使ってますw
869 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 16:20:00.37 ID:Nwp7mPiM] class FuncCall{ var func; var args; function FuncCall(func, args*) { this.func = func; this.args = args;} function call { func(args*);} } function funccall { var obj = new FuncCall(...); return obj.call();} function Load(){ obj[i] = new SystemButtonLayer(kag, kag.fore.base, funccall(btn, i)); with(obj[i]){ .setPos(0, 0); .loadImages("image"); }} function btn(i) {System.inform(i);} var obj = []; var i=0; Load();
870 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 16:20:41.65 ID:Nwp7mPiM] 申し訳ないです。 これを説明して頂きたいのですけど。 1.Load();でまずボタンを作ろうとして、funccall(btn, i)が呼ばれる。(まずここでなぜfunccall(btn(),i)でないのかわかりません) 2.funccallでobj(btn, i);が作られてobg.call();が呼ばれる。 3.obg.call();はfunc(args*)だからfunc(i)となる。 それがどうしてbtn(i)になるのかが理解出来ません。 上の書式で確かに動くので、正しい事は理解してるのですが・・・・・ さらに>>856 のshift()(this*);の意味もわかりません。 初心者の質問なのですが教えてください。
871 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 17:04:01.20 ID:Nwp7mPiM] 869.870ですがなんとなくわかってきました そこで新たな疑問なのですがreturn obj.call;だとbyn(i)と言う文字列?を出力するとわかるのですがなぜそれが可能なのでしょうか? return obj.cal()lじゃないのかな?と思ったのですが、これだと文字列では無く直接評価してsysteminformが出てしまいます。 なぜ()を付けなくて動くんだろうと言う疑問とダブルの??です。 856の方は未だにチンプンカンプンです。
872 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 19:12:28.26 ID:eAwQCbJq] TJSについて詳しく無い人にわかるようにきちんと説明するのはかなり大変なので、要点だけ解説します。 まず、一番大本の obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn(i)); では駄目なのか? この場合、期待しているのは「ボタンが押された時にbtn関数が呼ばれる」事なのに、 この表記だと「ボタンを作成した時にbtn関数が呼ばれる」事になってしまいます。 つまり、最初の表記ではSystemButtonLayerに「btn関数を渡す」つもりで 「btn関数の呼び出し結果を渡してしまっている」ことがエラーの原因です。 (続く)
873 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 19:15:40.36 ID:eAwQCbJq] TJSではbtn関数が定義されている状態で「btn()」と書くと、 その関数が呼び出した実行結果がとなります。関数そのものを あらわすには「btn」と、括弧無しで表記する必要があります。 つまり、元々の意図通り「SystemButtonLayerに、ボタンが 呼び出された時に処理されるようにbtn関数を渡す」場合は、 以下のように表記するのが正しいことになります。 obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn); …でも、これはこれで何かおかしいですね? そう、btn関数は引数をひとつ必要とする関数なのに、 これではボタンが押された時に引数無しでbtn関数が呼び出されてしまい、 やはりエラーになってしまうでしょう。 ではどうすればいいのか? (続く)
874 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 19:26:16.66 ID:eAwQCbJq] 吉里吉里の関数は「ファーストクラスオブジェクト」と言って、 変数に代入が可能な要素になっています(その仕組みのおかげで、 SystemButtonLayerに関数を指定して、後から実行してもらう 事が出来ます)。 ですが、ファーストクラスオブジェクトとしての関数は、 「関数そのもの」と「関数が実行されるコンテキスト」の 2つの要素だけで構成されています。関数を実行する際に 与える引数は、含まれていません。 つまり、吉里吉里の素の表記では、引数まで含めて関数を 遅延評価するために変数に代入してやることは出来ません。 (続く)
875 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 19:29:42.81 ID:eAwQCbJq] そこを何とかするための小技が「funccall」の一連の仕組みです。 詳細に書くと「目的の関数と引数を含めた新たなコンテキスト」を 作って、そのコンテキストで「目的の関数を目的の引数で呼び出す関数」 を作り、最終的にその関数を返値として返すという処理をしてるんですが、 自分で書いてて何言ってるんだという感じですね。 すいません、ややこしいのでなかなかうまく説明できる気がしません。
876 名前:名前は開発中のものです。 [2011/05/20(金) 23:41:03.92 ID:DRp9kJRA] 吉里吉里でAVGを作っていてわからないことがあったので質問させて頂きます メッセージウィンドウの上の部分にシステムボタン?みたいな感じのコンフィグ画面を呼び出すボタンを作りたいのですが というか作ったのですが、コンフィグ画面を呼び出した後元の画面へ戻す方法が分かりません サブルーチンの様にcall returnでは戻れませんし如何したら良いでしょうか? 皆さんからしてみれば馬鹿らしい質問かもしれませんがよろしくお願いします
877 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 23:43:39.26 ID:hQCWH1ga] こんふぃぐ画面用のれいやをよういするのがかんたん
878 名前:名前は開発中のものです。 mailto:sage [2011/05/20(金) 23:46:51.59 ID:ZuvEuGx1] あるいは、ボタンからcallするやりかたが分からないという場合は KAGリファレンスの「TJSをもっと使うために」の中の 「リンクやボタンの exp 属性などに指定するもの」、という項目を読め。
879 名前:名前は開発中のものです。 mailto:sage [2011/05/21(土) 00:17:22.48 ID:GeSh6aqR] >>872-875 お返事遅くなりました。 なんとなく分かった感じです(完全にはまだ理解出来てませんが) もう少し自分で色々考えてみたいと思います。 またわからなくなったらお願い致します。 ありがとうございました。
880 名前:名前は開発中のものです。 mailto:sage [2011/05/21(土) 01:17:30.53 ID:ENG/uSZB] 読み進むキーが、デフォルトではEnterとスペースですが、Ctrlでもできるようにしようとしています。 ぐぐって ;supportReadingKey = VK_CONTROL; を追加したのですが、そうするとスペースで進めなくなってしまいました。 Ctrlの追加だけ行うにはどうすればいいでしょうか。
881 名前:名前は開発中のものです。 [2011/05/21(土) 02:45:05.23 ID:zxd6ANIJ] >>878 ?kag.callExtraConductor という項目でしょうか? ボタンからのexpでサブルーチンを呼び出す事は出来るのですが 呼び戻し方がいまいちよく分かりません >3番目の引数は省略可能ですが、KAG のシナリオから戻ったときに実行する関数/メソッドを指定します という記述があるのですが関数やメソッドなどについて無知なもので・・・ 自分でも調べて意味を理解してみようと思いますができればそれと併せて説明を頂けたら嬉しいです >>877 >>878 さんお早い返事有難うございました
882 名前:名前は開発中のものです。 mailto:sage [2011/05/21(土) 10:14:32.75 ID:vKnww5xx] >>881 普通にcall returnできるんだが戻れないってどんなエラー文出てる? ちなみに自分はコンフィグ画面ではメッセージレイヤは 2とか3とか 通常画面では使わないレイヤ使ってる