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/
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でも試したのですが、やはり動くようです。
272 名前:名前は開発中のものです。 [2011/02/20(日) 11:52:04.53 ID:9jbrQ7SM] >>270 よくわからんが、改造をしないとその操作は無理ってことか?
273 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 12:14:33.07 ID:iC7SYJBe] >>271 ごめん見直してみたらリンクを無効化とかじゃなくてコンフィグ中にメッセージ送りを止めたいって話なのね それってコンフィグを別のレイヤにしてそっちにcurrent移すだけでいいんじゃないの? あとhistoryのoutputにメッセージ送りを止めるような機能はない
274 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 16:18:11.19 ID:jAwsX711] 質問させてください [macro name="macroA"] [image storage="&'kag.' + mp.page + '.base.Anim_loadParams.storage'" 以下略] [endmacro] というようなマクロを書いたのですが、[macroA page=fore] と指定しても kag.fore.base.Anim_loadParams.storage を読み込んでくれずエラーが出てしまいます どのように書けば動作するのでしょうか
275 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 17:53:42.89 ID:YcSY7ZqY] >>273 やっぱりそうなんですね。 止められないとすると上に被せて止めるのが一番手っ取り早いみたいですね。 コンフィグ画面もずりずりとメッセージ枠の下に引っ張り出してますので、現在処理開始と同時にメッセージ枠の上に透明マスクして、ずりずりコンフィグをひっぱりつつマスクの上にボタン画像を貼ったレイヤーを同時に動かしてます。 現実的にはやはりこれが一番よさそうですね。
276 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 19:58:37.00 ID:i5ckUWNm] >>264 コンフィグ画面をsetMode()するという手もあります。 ttp://devdoc.kikyou.info/tvp/docs/kr2doc/contents/f_Layer_setMode.html >>274 imageタグの必須パラメータlayer= が指定されていないので エラーになっているのでは? ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html#image マクロ中で [image layer=%layer|0 storage="&kag[mp.page].base.Anim_loadParams.storage" ...] にしては如何。 あと、baseに何も読み込まれていないと、エラーになるはず。 19:49:06 コンソール : kag.fore.base.Anim_loadParams.storage = (例外発生)(void) から Object へ型を変換できません。Object 型が要求される文脈で Object 型以外の値が渡されるとこのエラーが発生します というか、エラーメッセージが見たい…。 閑話休題、こんなのも読んでみては。 ttp://www.geocities.jp/keep_creating/DojinDOC/HowToReadErrorLog.html
277 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 21:06:28.99 ID:jAwsX711] >>276 レスありがとうございます というかよくソース見てみたら単なるtypoでした……あああ 教えていただいたサイト勉強になります
278 名前:名前は開発中のものです。 mailto:sage [2011/02/20(日) 22:57:18.44 ID:YcSY7ZqY] >>276 モーダルですね。 たしかにタイミングをうまくやればうまくいきそうです。 さっそく試してみます。
279 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 00:34:53.77 ID:lhX0r+bD] たびたびで申し訳ありません。 式中関数をずっとやってたのですが、クラスの中に以下のfanctionを書いてさらに式中関数を書きました。 それでクラスの外にbase_x base_yを設定すると以下の関数がクラスの中でも動くのですが、これをクラスの中に入れるとエラーがおきてしまいます。 switchも同様です。 クラスの中に変数を入れて、式中関数にも反映や変更は出来ないのでしょうか? ネットで相当調べたのですが、式中関数自体の情報が少なくて・・・・・ セッターをセットするかしないとダメなのでしょうか? コンテキストもまだぼんやりとしかわからなくて申し訳ありません。 function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} } };
280 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 00:57:10.42 ID:fMTx5PkL] switch = true; これがおかしい
281 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 01:31:53.82 ID:lhX0r+bD] そこは式中関数の中なので、問題無いと思うのですが・・・ 一応switchをコメントアウトしてもやはりエラーが出ます。(base_xの段階ですでにエラーが出ます) 変数を受け取れないみたいで、function mouse_xy(){の直下で base_xの中身を調べると間違いなく変数の中身は入ってました。 なぜ受け取らないのか、どうやったら受け取るのか色々試してみたのですが・・・
282 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 01:34:19.33 ID:9LsDDRVm] incontextof this; つけとけば多分動くよ function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} } incontextof this; };
283 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 01:34:53.13 ID:lhX0r+bD] ごめんなさい こちらに書く時に;の位置を間違えました。 function mouse_xy(){ kag.primaryLayer.onMouseMove = function(x, y, shift){ if (x > base_x &&y < base_y){ switch = true;} else{ switch = false;} }; } これでうごきません
284 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 01:40:06.76 ID:IhibMUrA] >>282 の解説をすると、 式中関数のコンテキストは null だから、中から関数外の変数を参照する場合は その変数が見えるコンテキスト(この場合は this)を設定してやる必要がある。 あと、switch は予約語だからやめとけ。
285 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 01:49:13.85 ID:lhX0r+bD] コンテキストがやっぱり関係してたのですね。 他がちょっとひっかかったのですが、何となく動きが変わりました。 switchの変数名は実際は違うのですが、確かにswitchと書いてたらもっとはまってたと思います。 完全に忘れてました。 ありがとうございます。
286 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 22:03:54.89 ID:n1ejhgIG] primaryLayer.onMouseMove をのっとるのは kag のクラス構成を調べないと危険
287 名前:名前は開発中のものです。 mailto:sage [2011/02/21(月) 23:56:00.34 ID:IhibMUrA] そういうときはデフォルトの onMouseMove をとっておいてオーバーライドするメソッド内で呼べばいい。
288 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 00:07:26.34 ID:CxNE+PLH] >>286 のように危険な行為だと認識して >>287 な行動が出来ないからこそスレに質問投下してるわけで 初心者は最低限、KAG本体に手を出すのは地雷であり最終手段って認識が必要だと思う
289 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 00:30:51.37 ID:B8G5DMC7] 危ないんですね。 とすると、適当にプライマリレイヤの上に何か作ってそこでやらせた方が良いと言うことでしょうか? 一応そう言う形にしてはいるんですが・・・・ ところで、これは全画面だと誤動作起きますね また新たな問題がorz
290 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 00:49:20.47 ID:CxNE+PLH] 全画面のときは拡大率を踏まえた操作が必要だから YesNoDialog.tjs47行目〜に拡大率云々のコードがあるから、参考になるかも 難しいなら全画面禁止にするのもアリ
291 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 10:07:44.22 ID:B8G5DMC7] だいたいやり方はわかったのですが、根本から作り直さないといけないみたいです。 とりあえずフルスクリーン使えないように禁則かけました。
292 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 11:50:54.54 ID:B8G5DMC7] フルスクリーン、分かってるつもりでやはりまったくわかっていませんでした。 そもそもYESNOは新しくwindowを作るわけなので必要だと思うのですが、メイン画面が拡大するわけなので中は自動でサイズが変わるものだとばかり思っていたのですが・・・ 自分で作ったレイヤーも追従すると思ったので、問題はたぶん.onMouseMoveが機能してないような気がします。 ゲーム中に通常画面>フルスクリーンにすると少し怪しいところもあるのですがたぶんちゃんと動いてるようなのですが、最初からフルスクリーンで起動させると自作の部分だけマウスが機能してないようです。 拡大に追従してないだけだろうかと思ったのですが、>>283 のように”ここから右側で反応”とかしても動いてないのでどうしてだろうと色々試して原因を探してます。
293 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 13:27:15.79 ID:B8G5DMC7] 原因が分かりました。 yesnoの意味も良く解りましたが、これは起動時のみのチェックでいいのでしょうか? 動作中に画面サイズを変更した場合、内部的に勝手に拡大 起動時に画面サイズが違う場合、こちらで拡大率を計算 と言う事なのでしょうか? 起動中に、なんらかの動作で拡大率の計算が必要になるケースはあるのでしょうか?
294 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 17:18:36.05 ID:SNRfu77f] 全部観て激しく後悔してる俺が通りますよ。 全13話のうち必要な話しは90話くらいに収まる。後は全部つまらんテンドンでお茶を濁して尺稼ぎ。 手法として「こうだよ!」>>ウソぴょん>>「こうだろ!」>>はぁ?違うわよ知らなかったの?>>「じゃぁこれが正しいのか?」>>最初っから何もなかったのよ!と言う感じで物語の提示仕方が最悪。 伏線とか厨丸出しの設定とか辻褄合わせとか一切ぶん投げて、結局どうやったら自殺教団の教祖様が身勝手で我が儘で偽善者全開で他人をどうやって自殺させようかと言う訳の分からん展開。 エロゲライターの質と人間性の悪さをモロに露呈してくれちゃった感じ。
295 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 17:19:36.64 ID:SNRfu77f] 誤爆ってる。。。。
296 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 17:27:04.54 ID:s/oNMyi7] どこのABスレだよ
297 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 21:04:44.22 ID:kvTQhI4B] >>292 もうソースごとうpってみろよ
298 名前:名前は開発中のものです。 mailto:sage [2011/02/22(火) 23:36:43.81 ID:UnZ5HLAl] Turbo C++ Explorerの新規ライセンス発行終わってんのか。 デバッガ使ってみようと思った俺涙目だ。 BCCしかねぇ。VCLわかんね。VCL依存排除はまだかね?
299 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 00:15:41.40 ID:WLu+ZLPV] まだかねって誰がそんなことやってるの?
300 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 00:51:48.18 ID:zdIUpe9v] お見せした方が添削早いと思うのですが、色々デバッグ用のコードとか、テストコードとか、素人丸出しのソースで1000行くらいあってとても恥ずかしくて見せられませんorz
301 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 01:44:28.21 ID:ObtitCQz] 聞くは一時の恥聞かぬは一生の恥という諺があってだな
302 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 02:16:49.82 ID:F9fPw7+l] 他人に添削されるのはすっごい勉強になるし 他人の添削をするのもすっごい勉強になる 特にこのスレには化け物じみた上級者も巣くってるのだから、添削されて悪いことは無い って自称中級者の我輩が言ってみるテスト
303 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 06:24:18.94 ID:mH9qLY+I] まぁ好い加減 情報小出しで 分からない分からないと一人芝居ばかり続けていると そのうち誰かがキレると思うよ
304 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 14:44:15.16 ID:QMu9Zjz+] 超初心者で申し訳ありませんが、 出鼻を挫かれたので質問させて下さい。 クリッカブルマップの動作確認をしようと思い、 KKDEの「デバッグ開始」を実行してみたのですが、うんともすんともいいません。 元画像は表示されるんですが…。 ですが、KKDE付属のものでなく、 吉里吉里から直接DLしたもので起動させると、 正常に動作をします。 これは一体どういう事でしょうか…。
305 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 20:08:40.47 ID:5R1+1gPO] >>304 書いてることがイミフだぞ。 判断に必要なことがまるで書かれてない。
306 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 21:21:27.34 ID:mH9qLY+I] >>304 簡単なクリッカブルマップのコードを別に用意し、それを使っても同じような症状なら KKDEのせいなのかな。俺使ってないから分かんないけども だがそれ以前にfirst.ksで打ち間違いがあるとか、 導入した怪しげなプラグイン等がエラーを起こしてるとか そんな気がしないでもないです
307 名前:名前は開発中のものです。 mailto:sage [2011/02/23(水) 21:32:55.94 ID:QMu9Zjz+] >>305 ごめんなさい、判断して頂くための必要事項が分かりません。 よければ教えて下さい。 KKEDで「デバッグ開始」から起動させるのと、そうでないのとで、 違いがあるのかをお聞きしたかったのです。 >>306 そういえば1パターンしか試してなかったので、 別のコードでも試してみます。 打ち間違いですか… KKDEからの起動以外だと正常に動作したので、 その可能性は無いだろー、と思い込んでましたが、 ちょっと見直してきますね…。 あ、プラグインはまだ何も導入していないので、違うと思います! お返事ありがとうございました!
308 名前:300 mailto:sage [2011/02/23(水) 21:37:05.73 ID:yCtHH5+S] ちょっと仕事立て込んできましたので、後日見せられるくらいに整えてコア部分を切り出してどっかにアップしてみます。 まだ拡大とかには対応してないのですが・・・・・