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/
171 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 16:14:10 ID:eoTU6IqZ] マクロをTJSで動かす方法は無いのかな? conducterの配列に収納されてるみたいだけど上手い方法が見つからない。 出来たところで、全部のタグに対応するわけじゃないけど。。。。
172 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 16:21:50 ID:ubsjfjaE] 【ゲーム制作】サスペンスギャルゲー 『フクロマンス』 【スタッフ募集】 ex14.vip2ch.com/test/read.cgi/news4gep/1277294113/
173 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 16:34:33 ID:mADjNJ6B] >>171 マクロをTJS……って具体的にどういう役割を想定してるの? 1. 今現在TJSで何かスクリプトを書いていて、その中でKAGのマクロ/タグを機能させたい 2. 今組んでいるマクロの中でTJSスクリプトを使いたい(evalタグ毎度毎度打ち込むのがめんどい) 3. その他 とか、一つの文面でいくらかの解釈が有るんだが……
174 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 16:40:40 ID:0BpiwOhd] >>171 ↓の759,760,767 ttp://bbs.bokunatu.com/test/read.cgi/krkr/1195603475/
175 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 17:19:10 ID:OjWV4otJ] 御助言のおかげで大元の骨格が完成しました。 本当にありがとうございました。
176 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 17:41:23 ID:eoTU6IqZ] >>173 特に想定は無いんだけど時々iscriptでtjsパート書いたりしてるとこっちで書くよりマクロで組んで呼び出した方が処理スピードはともかく楽に書けるよなとか思う時があったりするけどそのたびにendscriptして呼び出して戻るとか格好悪いなと。 あと全体をTJSで組んでると、movie関係とか思ったよりTJSで組むのが面倒な場合があったりするからそんな時に楽かなと。 マクロを作っておいて呼び出せば、複雑なタグ群でも一行で済んじゃうから。 概ね楽するための方法として。 マクロの方がバグ見つけるの楽だしね。 >>174 なんか使えそうな感じのレスだね。 ちょっと詳しく読んでみる。
177 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 18:09:42 ID:FkfXkijB] >>176 本末転倒やね TJSを使う時は必ず「タグを作成する」という形で行うようにして、iscript はスクリプト中では使わない、ってほうが結果的には奇麗になると思うよ
178 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 18:41:03 ID:eoTU6IqZ] >>177 実際そうだと思う。 たまーに急ぎの時とか、TJSで書くよりタグで書いた方が早いんだけど、でもここは絶対TJSじゃないと無理だしまあいいや、とりあえずendscriptして外に出して・・・とかやったりしちゃうのよね。 マクロの中身が百行とかなるとさすがにそれを一々TJSで同じ事やらせようとするときつい。。。。 タグは拡張性がTJSより低い代わりに、簡略化されてて楽に扱えると言うメリットはやっぱり捨てきれない。 俺ってダメダメ。
179 名前:168 mailto:sage [2011/02/15(火) 18:45:01 ID:FQniGo0m] ; >>166 ごめん、リファレンスチラ見で知ったかで書いた。今は反省している。 ; 例: 複数の選択肢の中から2つ選ぶと次に進むという構成で、一度選んだ選択肢は再度選べないようにする @wait time=200 *start|スタート [cm] @eval exp="tf.flags = [], tf.flags[1] = 0, tf.flags[2] = 0, tf.flags[3] = 0, tf.cnt = 0" *bunki [cm] [if exp="2 <= tf.cnt"]選択肢が[emb exp="tf.cnt"]回選ばれました[l][r][jump target=*start][endif] [if exp="tf.flags[1]==0"][link target=*select1]選択肢1[endlink][r][endif] [if exp="tf.flags[2]==0"][link target=*select2]選択肢2[endlink][r][endif] [if exp="tf.flags[3]==0"][link target=*select3]選択肢3[endlink][r][endif] [s] *select1 [cm] 選択肢1が選ばれました[l][r] [eval exp="tf.flags[1]=1, tf.cnt=tf.cnt+1"] [jump target=*bunki] *select2 [cm] 選択肢2が選ばれました[l][r] [eval exp="tf.flags[2]=1, tf.cnt=tf.cnt+1"] [jump target=*bunki] *select3 [cm] 選択肢3が選ばれました[l][r] [eval exp="tf.flags[3]=1, tf.cnt=tf.cnt+1"] [jump target=*bunki]
180 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 19:13:51 ID:eoTU6IqZ] 2つ選ぶと次に進むと言うのは、選択肢に戻った先で、選択肢を表示する前にifで飛ばせば良いよ。 一つ目と二つ目のメッセージの最後にカウンターかなにかでtf.count++とかしておいて、戻った先で選択肢の前に if(tf.cout>=2)とかすればいい。 一度読んだ選択肢を表示させないのはそれもフラグで管理して>>168 みたいにcondで制御すればいい。
181 名前:名前は開発中のものです。 mailto:sage [2011/02/15(火) 20:58:36 ID:AE4Z+Hd8] 昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのになんでiscriptなんてあるんだろうか。 スクリプトなのに低レベルな制御文しかなかったり文字列処理やバッチ処理に弱かったりDeeタンはドMだよね。
182 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 01:18:22 ID:i43onDkY] >昔からいろんな言語で1ファイルに多言語混在させるなと言われてきたのに 聞いたこと無いなぁ。本当?
183 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 05:04:29 ID:PFl5tPzr] CのマクロだとかHTMLの中にCSSやJS埋込みだとかXMLにDTDだとかいくらでもあるだろ
184 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 09:50:39 ID:wh0vq7x9] PHPさんがアップをはじめました
185 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 10:36:39 ID:fnJHfEYP] >>181 html
186 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 11:24:35 ID:auVMvR/S] TJSが低レベルなのはDeeタンの好みなんでしょ 電子工作が趣味だったりするみたいだし 吉里吉里のソースコード見てもやたらと低レベルな一行一行コードがダラダラと続く感じだし
187 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 12:06:32 ID:wjFNoLFy] 何が低レベルなのかさっぱり分からん こやつ、狂いか
188 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 12:49:26 ID:ggf6fWY5] いやならやめてもいいんじゃぞ
189 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 13:28:04 ID:RLCp7sg6] 高級言語とか低レベルとか誤解を招くから改称し手板抱きたい
190 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 13:31:55 ID:+qpjQr/e] 低レベル、はまさに能力が低いっていう意味で広く使われる言葉だから、 せめて低級とかって言って欲しいところではある。
191 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 13:55:57 ID:i43onDkY] 受ける印象同じだよそれ
192 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 13:57:31 ID:TPbyk8Lw] どう見ても>>186 は低級言語の意味ではなくレベルが低いという意味でレスしてると思う
193 名前:186 mailto:sage [2011/02/16(水) 14:27:49 ID:auVMvR/S] 抽象度が低いという意味で言った すまんね
194 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 14:56:29 ID:PCyBhogH] 「低レベル」でググるとゲームの攻略サイトとか日記ばっか出てくるけど、 「低級」でググると言語関係のページが出てくる、くらいには差がある。 >>193 多少でも知ってる人間ならまず間違わずに読み取れる書き方だったとは思うけど、 この流れだとスクリプターには誤解されても仕方ない。実にやっかいな用語だ。
195 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 15:05:12 ID:rcQiOZtl] 俺も低級って言われるとやっぱり低レベルとイコールなイメージが強いな。 ところでそんなプログラマーさんたちにちょっと初歩過ぎる質問なんだけど、 上の方で紹介されてる ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/ のLayerExなんちゃら系をC++でコンパイルしようとしたんだけど何か足りなくてエラーが起きる layerExImage/の中身とlayerEx/の中身とtp_stub.cppとtp_stub.hを1つのフォルダーに突っ込んで処理しようとしたけどコンパイルされない dllをDLすれば早いけど、今後の勉強のために覚えようと思って試したんだけどうまくいかなかった ほかに何が足りないんだろうか?
196 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 15:26:58 ID:JI5ci1t3] いや、なんてエラーが出たかぐらいかこうよ。 まあ、だいたい想像はつくけど。ncbind とかが無いとかどーとかいわれたんだろ。 pluginフォルダから下は全部そのままチェックアウトしような。 必要なファイルは全部プロジェクトファイル中でパス指定されてるんだから勝手にコピーして動くわけがない。
197 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 15:40:21 ID:rcQiOZtl] あっ、たぶんそれかも いくつかエラー吐き出したけど、tp_stub.cppとか無いとか言うエラーがあって、入ってるのになんでダメなんだ?と思ったけど パスの指定がされてないって事なのかな
198 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 15:57:42 ID:JI5ci1t3] いや、相対パスで上のフォルダから参照されてるから、上のフォルダごともってこないと駄目だよって話
199 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 18:34:38 ID:rcQiOZtl] コンパイル出来た、ありがとう でもちゃんとdllにするように設定したのにexeになってるorz サイズも違う もうちょっと勉強してみる
200 名前:名前は開発中のものです。 mailto:sage [2011/02/16(水) 23:58:32 ID:i43onDkY] 拡張子が違うだけじゃない?
201 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 00:02:01 ID:7ekoSIjI] そうなのかな? サイズがあからさまに違うし、拡張子をdllに変えてもうごかなかったorz いくつか試したけど、Exrasterなんか倍くらいサイズ違った・・・・
202 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 00:11:16 ID:h1zSGavv] むしろどうやったんだよ kirikiri2以下エクスポートしてslnひらいてコンパイル押すだけだろうが
203 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 00:26:47 ID:i1eT1ONz] I ・layerExフォルダ I ・layerExImageフォルダ I ・tp_stub.cpp I ・tp_stub.cpp BCC Developer>新規作成>プロジェクトで適当にプロジェクト名を作って。 出来たプロジェクトに上の4つをそのままドラッグで放り込んで一応デフォルトプロジェクトの編集でターゲットがdllにセットされてるのを確認してメイク。 これで一応exeが出来るんだけどdllに書き換えてもなぜか動かない
204 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 00:46:22 ID:D3vStg/X] 意味わかってないなら、素直に Visual Studio 入手してこい。Express ならただだ
205 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 00:51:48 ID:i1eT1ONz] 意味が分かってないからそうしてみる。 本当に悪い、C++は触った事一切無くてチンプンカンプン。
206 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 04:47:22 ID:9WE+dCEV] 質問お願いします。 書籍などにはonMouseMove等は新しいウィンドウで動作させるサンプルはいくつかあるのですが、ゲーム上と言うかKag上ではどのように書けば良いのでしょうか? 例えば、サンプルに良くあるのですが、captionにどう反映させるのか方法がわかりません。 function action(ez){ if(ez.target == primaryLayer){ if(ez.type=="onMouseMove"){ mess1="マウスカーソルの位置:(" + ez.x + "),(" + ez.y + "),(" + ez.shift + ")"; caption =mess1; } else if(ez.type == "onMouseLeave"){ mess1="マウスカーソルはプライマリレイヤの外にあります"; caption = mess1; } } } これを反映させたいのです。 また同じようにこれをイベントハンドラで反映させるにはどうしたら良いのでしょうか?
207 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 19:45:02 ID:Hn8XXTzb] >>206 結局ゲームとして何をやりたいのか? サンプルとやらを見せられて、余計混乱しているとお見受けします スマートじゃないけど、MainWindow.tjsの中に直接 function onMouseMove(x, y, shift)を記述、挿入してはいかが x,yにマウスカーソルの位置が入ってくるから リファレンスのWindowクラス参考ね
208 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 20:43:02 ID:9WE+dCEV] >>207 だいぶ不要と思う所を削りましたが、サンプルとかだと書籍とかネットとかだとだいたいこんな感じに書かれてまして class mywin extends Window{ var timer; function mywin(){ super.Window(); setInnerSize(800, 600); add(new Layer (this,null)); with(primaryLayer){ .loadImages("双子N_02A.bmp"); .setSize(innerWidth,innerHeight);} visible=true;} function finalize(){super.finalize();} function action(ev){ if(ev.target == primaryLayer&&ev.type=="onMouseMove")caption = "マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";} } var win = new mywin(); これだとちゃんとマウス座標をしっかりとactionで受け取れてうのですけど、この手のサンプルはいつも必ずと言っていいほど新しいwindowを作成してそこで動かしてますので、 これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。 これ自体をゲームに組み込むと言う事では無く、勉強で例えばこれをkagで組み込めれば他のactionメソッドも同じように組み込めるように理解出来ればと思っての事なのですが・・・・ いつも別窓ではそれなりにうまくいくのですけど、いざこれをkagにもってこようとするとエラー連発で1つの大きな壁になってしまってるのです。
209 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 20:51:02 ID:9WE+dCEV] 座標を取るだけなら、過去ログを探して kag.superOnMouseMove = kag.onMouseMove; var mess1; kag.onMouseMove = function(x,y,shift){ if(!kag.fullScreened){ superOnMouseMove(...); mess1="マウスカーソルの位置:(" + x + "),(" + y + "),(" + shift + ")"; caption = mess1; if(kag.menu.visible){ kag.menu.visible=false; }else if(y<=10){ kag.menu.visible=true; } kag.innerHeight=600; } }; 少し手直ししてこれで動かせてるのですが、例えばkag.onMouseMove = function(x,y,shift)で関数式としてやってるらしいと言う事はなんとなくネットで調べてわかったのですが、 これを普通の書式に出来ないのか?とかなぜこの書式じゃないとダメなのかとか、この書式は最後に;をつける以外に違いはなさそうなのに普通の書式にするとなぜエラーが出るのだろうか?とかわからない事だらけなのです。 またkag.superOnMouseMove = kag.onMouseMove2 = kag.onMouseMove;とかしてkag.onMouseMove2をもう1つ作って同時に動かしてみようとして失敗したり、なんで出来ないんだろうと色々試しては挫折し続けてます。
210 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 21:38:02 ID:Hn8XXTzb] >>208 > これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。 Initialize.tjs内で global.kag = new mywin() if typeof global.kag == "undefined"; Override.tjsで class mywin extends KAGWindow 以下略 こんなのが希望の答すか(ウチはこんなんで動いてますが正道かは知りません) で結局何がしたいのさw イチから組み直すほどシステムにオリジナリティが無ければ、 そっちからアプローチしたほうが早くないかな 勉強っつーなら、勝手に複雑にして勝手に悩めと思ってしまうが
211 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 22:09:21 ID:9WE+dCEV] ありがとうございます。 良く読んで試してみます。 今でもタグだけでも吉里吉里は十分良いツールなのですが、やれる幅をもっと増やしたいのです。 例えばマウス関係を覚えればインターフェースの改善が出来ますし、現状でも色々な方のプラグインとか自作分とかでそれなりには組み上がってはいるのですが、 エフェクト関係や本体スクリプトまわりに比べてUIがほとんど手つかずで、それで改善しようとアクションメソッド勉強してたら完全にはまってしまいました。 これがうまく行けば、一気に壁が越えられると思います。 本当にありがとうございます。
212 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 22:50:35 ID:jvYmMe0c] >>206 VSで通るようになったんだ。 前はBCBないとコンパイル出来なかったのに。
213 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:02:21 ID:9WE+dCEV] >>210 試してみましたが、ウィンドが二枚出てしまいました。 理想としては今のシステムの中で・・・やりたかったのですが、不勉強なせいだと思いますので、もう少し勉強します。 命令の意味がもう少し理解出来ればそこからうまくやれるかと思います。 ところで、最初の方の質問のものを、簡単にクラス化して試してみたのですが・・・・・ class test_tempLayer{ var test_tempLayer; function test_tempLayer(){ kag.add(test_tempLayer = new Layer(kag, kag.fore.base)); with(test_tempLayer){ .loadImages("glay.png"); .setSizeToImageSize(.width, .height); .setSize(kag.innerWidth,kag.innerHeight); .visible=true;} } function action(ev){ if(ev.target == test_tempLayer&&ev.type=="onMouseMove") { caption="マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";} else if(ev.target == test_tempLayer&&ev.type == "onMouseLeave"){ caption="マウスカーソルはプライマリレイヤの外にあります";} } function finalize(){} } var test_tempLayerx = new test_tempLayer(); 最初これならいけるかとおもったのですが、飛ばないのですがactionが動いてません。 どうしてなのか教えて頂きたいです。
214 名前:名前は開発中のものです。 [2011/02/17(木) 23:06:11 ID:3XtPmN9m] >>212 プラグインの話でしょ 吉里吉里2本体はBCBないと無理だと思われ
215 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:26:25 ID:mHK4gVts] >>213 actionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈(吉里吉里2リファレンス参照)だけど、 その構築分じゃtest_tempLayerクラスの中にactionメソッド定義してないか? で、今のウィンドウの中でやりたいっていうのなら、単にAfterInit.tjsの中で kag.action = function(ev){ switch(ev.type){ case "onMouseMove": this.caption = "X:"+ev.x + "," + "Y:"+ev.y; break; case "onMouseLeave": this.caption = "Bye."; break; } }; みたいに書けばそれで済む話じゃね?
216 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:36:23 ID:mHK4gVts] んで>>209 で「なぜ関数式じゃないとダメなのか」って事を言ってたけど、 オレのうろ覚えじゃなければ、TJSでは別々のファイルで同一のクラスを分割定義する事は出来ない (例えばMainwindow2.tjsというファイルを作り、その中で class KAGWindow extends Window(以下略) とか書いても動かない) っつう仕様が有った筈なので、後から機能を足すなら普通の書式はあんまりよろしくない。 というか、一度読み込んでしまったクラスに後から機能を追加するなんて事出来たっけ? だから通常は、「KAGWindowクラスそのもの」じゃなくて、「KAGWindowクラスから生成されたkagというオブジェクト」みたいに 既に生成済みのオブジェクトに対して kag.onMouseMove = function(以下略); といった形で組むことが多い。というかそれが普通?
217 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:40:43 ID:jvYmMe0c] >>214 そういうことか。悪かった。
218 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:48:28 ID:9WE+dCEV] >>215 layerクラスのイベントにonMouse〜系があるのでそれでいけるものだと思ったのですが、それではダメなのですね。 関数オブジェクト?でしたか。やはりこの書式しか無いのですね。 この書式まったく使った事が無くて、漠然としか意味が分からず必死に普通の書式を試していたのですが・・・ ありがとうございます。もうちょっと勉強してまたわからなかったらお願いします。m(__)m
219 名前:名前は開発中のものです。 mailto:sage [2011/02/17(木) 23:50:51 ID:9WE+dCEV] >>216 それが普通なのですか。 とすると参考書にはそう言う感じには書かれてなくて普通の書式ばかりなので、ゲーム制作用の機能拡張には向いてないのですね。
220 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 00:01:00 ID:/8tLczkp] いや、普通の書式を使う事を否定してる訳じゃないよ。 >>215 の動作だって、コレはあくまでAfterInit.tjs等の別ファイルに書くことを前提にしてるけど、 Mainwindow.tjsの中に直接 function action(ev){ switch(以下略) } って書く事も出来るし、そういう形でコード追加してる人も多く居る。 ただ後々コードを修正する時になって、「アレ、俺どのファイルに追加コード書いたっけ?」っていう事になって混乱する可能性があり得るので AfterInit.tjsみたいな単一のファイルの中に kag.action = function(ev){ 略 }; kag.foo = function(){}; abc.bar = function(){}; みたいな具合に追加コードをどっさり書き連ねる手法も有るよっつう話。どっちが拡張に向くか向かないかってのはちょっと違う。
221 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 00:02:38 ID:1kmgXvbN] >>216 確認しちゃったじゃないか。多重定義はあと優先だよ
222 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 00:08:18 ID:/8tLczkp] あれ、そうだっけ。ごめん間違えた。 あらやだ私ったら恥ずかしい
223 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 00:16:26 ID:6piJtGX6] AfterInit.tjs自体ほとんど使ってなかったのですが、そっちに書いてしまった方が確かにいいですね。 Mainwindow.tjsはバージョンアップの度に書き換えなくちゃいけなくなるので、なるべくなら触りたくないんです。 AfterInit.tjsならその心配もありませんし、tjs式はわざわざ他のksファイルにiscriptで書いてたので、それに書き直してみます。 今回頂いたのは正直まだfunction()を完全に理解していないので、次は画面内全部じゃなく.hitThresholdに対応するように考えて見ます。
224 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 14:11:14 ID:pGkxxiu5] 横からスマン >>215 でactionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈と言うことだし実際試したら動かないわけなんだけど、じゃぁlayerクラスのonなんちゃら系って言うのは使えないの? windowクラスを作る事前提なら、KAG上では無理って事? 俺も初心者に毛が生えた程度でスマン
225 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 15:48:43 ID:27Mbg7EK] 吉里吉里リファレンスの「イベントシステムについて」を上から下まで一通りよんで考えればおのずとわかることでしょう
226 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 19:33:36 ID:/8tLczkp] >>224 Windowクラスのactionメソッドは「自分の中(windowの中)で何かイベントが起きた(各レイヤにマウスが載ったetc)かどうか」を検知するもんであって 各レイヤが各々に「自分の中(そのレイヤクラス自身)で何かイベントが起きたかどうか」を検知するのは別の話だよ。 kag.primaryLayer.onMouseMove = function(略) と書いても機能的には同じことが果たせる。 書き方が違うってだけのことよー
227 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 20:19:51 ID:kdo303te] actionって名前が悪いんだよな。 observeにしとけば読んで字の如くなのに。 コード的にも function observer(ev){ //foo } kag.observe = observer; で意味が通じるのに。
228 名前:名前は開発中のものです。 [2011/02/18(金) 21:05:39 ID:AX8UzFm1] お初にこのスレに来ました者です。 質問なのですが、ゲーム起動画面の「栞をはさむ」を「セーブする」という文字にするにはどうすればいいのでしょうか。 調べた結果、MainWindow.tjsを編集すればいいという結果だったのですが、どこをいじればいいのかわかりません。 自分なりに以下のように編集してみたのですが、変更されません・・・。 // 保存するファイル名を得る var selectdata = %[ title:"セーブする", filter: [saveThumbnail ? "サムネイル画像付き栞データ(*.bmp)|*.bmp" : "栞データ(*.kdt)|*.kdt"],
229 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 21:51:25 ID:Go9Y3Ma1] Menus.tjs110行目近辺に求める答えがあると思うよ
230 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 22:22:32 ID:ogV0P+iB] ちょっと雑談というか質問というか意見を聞きたいんだが みんな吉里吉里製のゲームを世に出すときに 解析対策してる? フリーゲーム見ると結構やってる人いるみたいなんだけど 簡単にできるもんなの?
231 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 22:27:56 ID:hDc5Qb3Q] そう言うことは、解析したくなるほど良いゲームを作ってから考えような
232 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 22:40:37 ID:ogV0P+iB] >>231 こう返す奴がいつもいるのは知ってるけどさ 煽るだけの意見は求めてないよ 「解析したくなるほど良いゲームを作っていない」という根拠がどこにあるんだ というか論点はそこじゃない 分かれ
233 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 22:46:36 ID:hDc5Qb3Q] マジレスするなら、力量さえあれば解析対策なんていくらでもできると思うぞ 後はどこまでやるかコストとか期間とかの問題だけ 個人的にはそんなことにパワー割きたくないから大したことはやらない
234 名前:名前は開発中のものです。 [2011/02/18(金) 23:02:19 ID:AX8UzFm1] >>229 できました!! どうもありがとうございました。本当に助かりました。 またお世話になるかもしれませんが、そのときもよろしくお願いします。
235 名前:名前は開発中のものです。 mailto:sage [2011/02/18(金) 23:10:56 ID:W4WoUTwG] 俺は同業者対策にtjsと自分で作ったマクロだけ吉里吉里の暗号かけてる 一応コメント全部抜いて すぐに解かれる物だけど、すぐに解くレベルの人なら俺が作ったのより良い物をつくれるだろうし、誰かに手伝って貰って解くレベルの人は読んでもわからんだろうしと考えてる
236 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 00:25:04 ID:WVYEDYF2] dllをビルドできる環境があるなら簡単にできる xp3enc.dllとxp3dec.dllを自作すればいいだけ ただし同程度の知識を持っている人間なら簡単に破れる その程度で良ければ
237 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 01:03:11 ID:e7TICuoi] >>225-227 おおおなんか出来た! なんでうまくいかんのだろうと放置してたけどあっさり解決したよorz thank you!! 暗号かぁ テキストか何かでキーを任意で変えられるとかなりいいかなと思う fateのあのキーはちょっと笑えるけど読めてしまうあれは果たして正しいのか?とか思ってしまう今日この頃
238 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 01:49:33 ID:cZV2lQMX] 解析にキーなんて関係ないけどな
239 名前:名前は開発中のものです。 [2011/02/19(土) 07:24:38 ID:ptgwOnoc] よく吉里吉里で作ったゲームでいつでもセーブできるものがありますけど、それってラベルを大量に作ってるんですか? それともラベルをたくさん作る以外に何か方法があるんでしょうか?
240 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 08:35:37 ID:WVYEDYF2] 「吉里吉里 どこでもセーブ」でググれ
241 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 08:49:41 ID:ry9A4YMJ] いい加減にマルチポストするのやめれ('A`)
242 名前:名前は開発中のものです。 [2011/02/19(土) 12:26:26 ID:ptgwOnoc] >>240 どこでもセーブプラグインとやらを見つけました。 使い方にも載っていたようにやはりセーブポイントには[np]をつけなくてはいけないんですね。 >>241 すいません、過去ログに載っていましたか?
243 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 12:50:29 ID:AZlqjiRa] たしか毎行に*|を入れると出来たと思いますけど、手間かかるしプラグインの誤動作で画面崩れるの怖いので自分で確実なところでセーブ出来るようにしてます。 ところで一昨日からアドバイス頂いて色々試しているのですが、式中関数の中では他のメソッドを呼び出せないのですね。 クラスのなかでtimerを呼びに行こうとして色々試したのですがダメでした。結局式中関数に直接書いてしまいましたが見た目がブサイクになってしまったのですけど、仕方無いかなと・・・・
244 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 13:08:14 ID:+ZjzSuRr] ヒント: incontextof
245 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 14:21:40 ID:TR/rwGBg] 自前のレイヤをaddContinuousHandlerで移動させる時に、 例えば80ピクセルの幅を移動するのと同時に表示をフェードインさせたいんですが、 移動開始時はopacity=0で、移動終了時に丁度255になるようにしたいんですけど、上手くいきません (初めから完全に表示されていたり、半透明で移動した後最後に突然opacity=255になる) 何か良い方法は無いですか?
246 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 14:51:36 ID:AZlqjiRa] 移動中の描画のタイミングで段階的にopacityを弄るとうまくいくと思います。
247 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 15:14:15 ID:TR/rwGBg] レイヤのtop・leftを書き換えるところでopacityも変化するように、 255を移動ピクセルで割って、その数を描画のタイミングで加算してみたりしたんですが たった数十ピクセル移動する間にopacityが10000とかまで加算されたりして、 255に収まるようにすると、上記の()内のような事になってしまいます
248 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 15:38:32 ID:cZV2lQMX] >>247 間違ってるからでしょ コードだしてもらわんと誰もわからんよ
249 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 16:39:54 ID:wVhY5yhF] 解析対策なんてデバッガかけるか実行中のメモリから抜かれるとどうにでもされるからやってないな。 とくに吉里吉里はxp3filterが標準で用意されてるから楽だし。
250 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 16:44:28 ID:poxQtpu7] 移動は%で場所指定してるのに透明度はHandler呼ばれるたびに加算してるとか そんなところだろうと予想
251 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 16:51:34 ID:TR/rwGBg] TextLayer.opacity = 0; startTime = System.getTickCount(); System.addContinuousHandler(handler); - 以下handler内 dist = (tickCount - startTime) * speed \ 1000; if (TextLayer.top > moveH) { TextLayer.top = it - dist; } ※moveH=最終的な到着点の座標 レイヤを下から上へ移動させる時、大体こんな感じで記述しています で、opacityをどこで加算していけば、moveタグみたいに滑らかに移動してくれるのかと・・・
252 名前:名前は開発中のものです。 [2011/02/19(土) 17:12:35 ID:6HEBXbJG] 横からですまん、ちょっと質問 タイトル画面でロードをするために右クリックサブルーチンを表示させたいんだけど下のソースで実行してクリックしても無反応なんだ 誰か助けてくれ [link exp="kag.restoreBookMark()"]ロードする[endlink]
253 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 17:24:52 ID:JEjsxLwS] 色々と興味深い意見が聞けてよかったです コメント改行全部抜くとか、流用はやーめーてーねーという意思表示をするくらいが丁度いいんですかね 参考になりました。ありがとう >>252 それじゃ右クリックサブルーチン呼び出せないよ・・・ サブルーチンの意味をお勉強すると手っ取り早いよ
254 名前:名前は開発中のものです。 [2011/02/19(土) 17:43:12 ID:6HEBXbJG] >>253 意味調べてみたんだが・・・ エンドリンクを抜いたりカッコを抜いたりしてみたんだけど駄目だったorz 無知な俺に答えを教えてくれ!
255 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 17:47:21 ID:lNwerVwv] KAG System リファレンスの中に 右クリックサブルーチンにてセーブロードするサンプルが載ってるんだが…見た? 良い機会だからクレクレせず探してみー
256 名前:名前は開発中のものです。 [2011/02/19(土) 18:36:57 ID:6HEBXbJG] >>255 一通り見たハズなんだが答えが見えないんだ・・・ ちょっとkwsk頼む
257 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 18:40:47 ID:poxQtpu7] >>251 「毎秒speedドットだけ動かす」ルーチンなら 総移動時間を計算して、経過時間との%取って透明度変化 移動時間指定にしたら1ルーチンで上下に動かせるようになるしこっちのが良いと思う time = 1000 (1000msで移動完了) firstT = TextLayer.Top moveT = 最終的な到達点 firstO = 0 moveO = 255 -handler内 per = (tickCount - startTime)/time TextLayer.top = firstT+( (moveT-firstT) * per ); TextLayer.opacity = firstO+( (moveO-firstO) * per );
258 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 19:13:56 ID:lNwerVwv] >>256 ホントに探して読んだ?そのサンプルソース程度は理解できないと後々辛いよ >>252 それだと栞の何番を読むかが指定されてないよ
259 名前:名前は開発中のものです。 [2011/02/19(土) 19:29:09 ID:6HEBXbJG] >>258 正確には一通り探したけどどこだかわからなかったんだ… 追記なんだが、右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい
260 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 20:08:22.91 ID:TR/rwGBg] >>257 おおお、ありがとうございます! 上も下も表示出すのも消すのもバッチリです、スクリプトが随分すっきりしました
261 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 20:27:59.68 ID:lNwerVwv] >>259 うう…結局付属のrclick_tjs.ksの使い方が分からないと? [link exp="rclickconfig_object.show()"]ロードする[endlink] 的にやればいいんじゃないの? (トリガを待ったりするし、これだけでは完全には動かないが) 言ってるサンプルはここね KAG System リファレンス>右クリックサブルーチンについて>難しい例 まずはKAGオンリーで作ってみないか?あなたのスキルに添って 「サブルーチン」という概念が分かれば上のrclick_tjs.ksも難なく使いこなせるよ
262 名前:名前は開発中のものです。 [2011/02/19(土) 20:48:41.53 ID:6HEBXbJG] >>261 ソースありがとう! あとは直接サムネイル画面に移動する方法だけだわ リファレンスは今見たところ 見逃してたぜ・・・ それでKAGオンリーで作るってどういうこと? 今現在もKAGオンリーだと思うんだけど・・・
263 名前:名前は開発中のものです。 mailto:sage [2011/02/19(土) 22:08:22.33 ID:1OU1FngV] カグロイドのソース公開してくれんかな・・・。
264 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 01:06:49.47 ID:YcSY7ZqY] >>244 incontextofわかったようなわからないようなです。 これは数をこなして覚えないと覚えられないタイプのコマンドみたいでとりあえず色々やってみます。 全然別の話しなのですが、メッセージレイヤーを出したままコンフィグ画面を作ろうとしてはたと困ったのですが、履歴書き出しを停止してもそのまま画面をクリックするとメッセージがどんどん進んでしまって。 kag.tempsave(0);でもメッセージは戻らなくて、MessageLayer.tjsのクリックを受け付ける所にフラグで禁則かけても見た目は止まったように見えても解除するとクリック分テキストが進んでいて。 結局無理矢理メッセージレイヤーの上に透明のレイヤーを被せてクリック出来ないようにしたのですが、どうにもスマートじゃなくて。 メッセージレイヤーを表示したまま一時的に、クリック出来なくする方法は無いのでしょうか? 消すのはたぶんinvisibleByUserあたりを実行すれば良いと思うのですが・・・
265 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 02:30:01.32 ID:qdK69SRk] れいや.enable = false
266 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 02:45:33.67 ID:YcSY7ZqY] 難しく考えてたのですが、初歩的過ぎました・・・ ありがとうございました。
267 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 04:17:50.19 ID:YcSY7ZqY] >>265 数種類試してみたのですが、.enable = falseはメッセージレイヤにはなさそうでした・・・
268 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 09:19:53.34 ID:iC7SYJBe] >>267 できるよ 試しにクリックできる状態のところに [eval exp="kag.current.enabled = false"] とでも挿し込んでみ (ちなみにenable=falseしてても新たにリンク/ボタンをつくると操作できるようになるので注意)
269 名前:名前は開発中のものです。 [2011/02/20(日) 11:23:11.41 ID:9jbrQ7SM] 昨日の続きの質問なんだが、今タイトル画面からセーブ・ロード画面を呼び出したいんだ 右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい 以下のソースだと本編で右クリックを押した状態じゃん? 直で右クリック⇒ロードへ持っていきたいんだけどどう記述すればいいのか教えてくれ [link exp="rclickconfig_object.show()"]ロードする[endlink]
270 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 11:38:18.84 ID:K9O8EjLN] show()内RClickConfigLayerを自前のRClickSaveLoadLayerにでも変えてやれば動くのだろう KAGもTJSもよく分かっていない状態で改造に手を出すと、続出するバグがトラウマの原因となってしまうと思う
271 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 11:47:18.97 ID:YcSY7ZqY] >>268 うーん、試してみたら何事もなかったかのように動くので、まっさらな232r2でも試したのですが、やはり動くようです。