■吉里吉里/KAG/TJS雑談質問スレ■その21
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/05/22(土) 15:41:56ID:tZCB+yDd自作ゲームの進行状況や製作ツールについての話、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雑談質問スレ■その20
http://pc11.2ch.net/test/read.cgi/gamedev/1264933876/
0044名前は開発中のものです。
2010/05/23(日) 16:32:36ID:L/FIBD990045名前は開発中のものです。
2010/05/23(日) 16:49:22ID:8c/di4zsそもそも >>31 は、吉里吉里の TJS 実装は GIL を持ってなくてロックしてくれないからどうするかって話だぞっと
0046名前は開発中のものです。
2010/05/23(日) 17:11:32ID:Gl2+JiOI> マルチスレッドが考慮されてないのはあたりまえ
> Windowsはもともとがマルチタスクを前提として設計されている
> こっちはすごい
吉里吉里は、Win32レイヤで書かれた下位層、
C++記述されたスクリプト言語であるTJS層、
TJSで記述されたノベル言語であるKAG層。
の3層構成になっている。
で、下位層はC++でWin32APIを直接叩いてるから、
そのレイヤでは当然Windowsプログラミングの常識が絡んでくるのよん。
0047名前は開発中のものです。
2010/05/23(日) 17:13:46ID:Gl2+JiOIこれら全てをひっくるめた総称として使われていることが多いですね。
適当な話をする時にはごっちゃでもいいんだけど、
これらの階層を意識した細かい話をする時には
階層の区分けに自覚的でないと話が混乱するよ。
0048名前は開発中のものです。
2010/05/23(日) 17:46:21ID:JzgxT+Nvネットワーク処理を書くのなら、スレッド無しで非同期処理のみで実装するほうが面倒な件。
ああいや、完全非同期にしても吉里吉里のタスクとは別でaccept待つならスレッド一つは必要になる?
0049名前は開発中のものです。
2010/05/23(日) 21:36:40ID:aL+rRsRTWindows7 64bitになって、krkrrel.exe(リリーサー)が途中でエラーになって
動かないんだけど同じ人いるかな。
互換性のトラブルシューティングでもvirtual PCのXPモードで動かしてもダメだった。
005046
2010/05/23(日) 21:55:21ID:aL+rRsRT手持ちがkr2_230版だったが、最新のはkr2_230r2になってた。
0051名前は開発中のものです。
2010/05/24(月) 13:29:04ID:A/QWIwPb005252
2010/05/25(火) 05:20:44ID:TAKdIbQN格闘ゲームのHP表示みたいなメーターを装着したいんですけど
どうやったらいいですか?
ググったらタイムアウトまでの時間表示のやり方というのしか見つけられませんでした。
時間とともに減っていくだけじゃなく、数字の増減を表示したいのですが・・・。
0053名前は開発中のものです。
2010/05/25(火) 12:17:34ID:tdz/xrWI前スレ986です
目的はオート中のウェイトをクリックなどの操作でキャンセルです
「どんな操作で」が質問中に抜けていて混乱させてしまいすみませんでした
前スレ995を参考にやってみようと思います
みなさんありがとうございました
0054名前は開発中のものです。
2010/05/25(火) 12:21:06ID:StsUsnmUカウントダウンタイマーなら、残り時間を格納している変数があるはずだから
そこをHPの変数とかに置き換えればOK
あとは残り時間を減らしていく部分とか、ゼロになると何かする部分とかは削る
0055名前は開発中のものです。
2010/05/25(火) 13:44:20ID:6CvLfqH6簡単だし
0056名前は開発中のものです。
2010/05/25(火) 16:59:43ID:AqubFvJ8setSizeでレイヤの描画表示領域のサイズを変えるのが一番いいんじゃね
0057名前は開発中のものです。
2010/05/25(火) 17:29:25ID:T4GTU+pLよさげだね。
0058名前は開発中のものです。
2010/05/25(火) 23:33:51ID:wXbNmro6国家の基はあくまでも人です。対等や平等はありえません。
あらゆる対人関係が上下関係であるのと同様、国家間の関係は上下関係です。
日本はまず日中関係、日韓関係でそこをはっきりさせる必要があります。
子どもの躾と同じです。
そして日米関係、これは正確には米日関係という事になります。
甘んじろと言うのではありません。
分・際を弁えることと下に甘んじることは、全く違います。
二言目には対等だの平等だの口にする民主党は、そこを理解していません。
0059名前は開発中のものです。
2010/05/26(水) 16:19:28ID:NStzn3anラーメンまだー?
0060名前は開発中のものです。
2010/05/26(水) 16:28:41ID:Z7HeaOfL誤爆だろそうでなくても相手するなアホ
0061名前は開発中のものです。
2010/05/27(木) 12:22:15ID:dJ3cKJXP0062名前は開発中のものです。
2010/05/27(木) 12:22:51ID:fvNtsgl20063名前は開発中のものです。
2010/05/28(金) 04:22:27ID:BMOhnCwO0064名前は開発中のものです。
2010/05/28(金) 08:21:12ID:zXqRvFOz0065名前は開発中のものです。
2010/05/28(金) 09:29:40ID:lF306QjGきわめて確立は低いがマジ質問の可能性にかけて。
吉里吉里内でレンダリングしたり、3D画像を動かそうと思ったら無理。
既存の吉里吉里ではそういった物はサポートされていない。
3Dで作った画像を背景にするのは当然可能。つか2Dも3Dもこれなら
一緒だからな。
0066名前は開発中のものです。
2010/05/28(金) 10:55:15ID:pNfHlrW70067名前は開発中のものです。
2010/05/28(金) 12:07:45ID:SEzdAxm/drawdeviceIrrlicht プラグインってのがあってだね。
無理ではないんだ
0068名前は開発中のものです。
2010/05/28(金) 14:36:44ID:lF306QjG実はその存在は知ってたり。
ただ、一般的ではないし、簡単に導入できるものでもないので割愛した。
あくまでも吉里吉里のツールとして想定されてないって感じで書いたんだが
まあ、回りくどかったな。
「プラグインならあるけど、恐らく君じゃ無理」と書くべきだったかも。
0069名前は開発中のものです。
2010/05/28(金) 16:03:47ID:eZrIM7a50070名前は開発中のものです。
2010/05/28(金) 20:06:13ID:p9xTwI73TJSの層からポインタ使って云々て吉里吉里だと一般的じゃないよね。
なんで? tjs_intで値運ぶとconstとかの情報が消えていろいろ危険だから?
0071名前は開発中のものです。
2010/05/28(金) 20:10:01ID:p9xTwI73でも吉里吉里はどうせネイティブ層とズブズブなんだから、
ポインタであれこれするのも一般的になっていいのにと思う。
そうすればスクリプトからレイヤのピクセル直接弄ったりが楽になるのに。
0072名前は開発中のものです。
2010/05/28(金) 20:11:15ID:ARWL4hqx0073名前は開発中のものです。
2010/05/28(金) 20:41:06ID:QLlJeu5r一般的には、TJS からポインタさわれても破壊おこすだけでメリットゼロだからだろう。
TJSから扱う時点でいろいろ操作インターフェース間にはさまって、ポインタつかうメリットであるところの性能でないし。
インターフェース仕様さらしてくれれば批評したげるよw
0074名前は開発中のものです。
2010/05/28(金) 20:59:23ID:p9xTwI73/* STLのvector<unsigned char>とTJSのArrayの合いの子みたいなもの */
var buf = new OctetBuilder( );
/* 最初のスキャンラインをmemcpy */
buf.addBlock( layer1.mainImageBuffer, layer1.mainImageBufferPitch );
/* バッファ内のアドレスを他の関数(ネイティブ層)へ渡す 例えば反転とか */
GL.flipScanLineBytes( buf.begin, buf.end );
/* 別のレイヤへmemcpy */
buf.copyTo( layer2.mainImageBufferForWrite, buf.length );
レイヤのサイズが違ったりぬるぽだったりしたら鼻から悪魔でたしかに怖いけど。
0075名前は開発中のものです。
2010/05/28(金) 22:00:16ID:QLlJeu5rGL が汎用のビットマップ操作のクラスを実装したものだと想像するが、
その作りだと、あまりにも簡単にふっとびすぎるだろう。TJSのメリットである安全性を犠牲にしてまでつくる構造じゃない^^;
layer の mainImageBuffer や mainImageBufferPitch はプラグイン内部でだけ触るべきものだね。
OctetBuilder の begin や end も同様で、任意の場所からアクセスさせたいなら、例えば、インターフェースは
GL.flipScanLineBytes(buf, begin, end) として、begin と end が null ないし voidなら、それぞれ buf の
先頭と末尾を意味させて、数値ならオフセット値として扱う、といった構造にするのが妥当。
さらに buf の範囲外なら例外をなげれば万全
引数の型判定できるんだから、処理対象として、Layer を渡された時と、OctetBuilder を渡された時を
区別して内部分岐してどちらでも同じような感覚で使えるようにするのがユーザ的には一番使いやすいだろうね。
ただ、そうすると、Layer と OctetBuilder のインターフェースが違うのが気持ち悪いというのがあるかもしれない。
それを嫌う場合、逆転の発想で、最初から両方に同じインターフェースをはやしてしまうという手がある。
まず、もろもろ必要なポインタ操作をうけつけるインターフェースをネイティブで準備して、ObjectBuilder はその
インターフェースを単純に継承した実装にする。Layer 用には、同インターフェースの操作を、Layer の実インスタンスに proxy して
アクセスするような実装を準備して、メソッド呼び出しの時点でフックして追加で NativeInstance をを持たせるか、あるいは
単にそれで作ったクラスと Layer を多重継承させれば良いだろう
それらのオブジェクトを処理する機能側では、まず対象オブジェクトがそのインターフェースをもっているかを
NatigeInstanceSupport 経由で確認して、もってなければエラー、もってれば、そのインターフェースを直接
ネイティブでさわるようにすれば、データの扱い的にも安全、コード的にもすっきり、さらに性能も出せる
0076名前は開発中のものです。
2010/05/28(金) 22:17:13ID:p9xTwI73プラグインからやるのが一番ってのはわかるし、俺も普通そうしてるんだ。
ただ今、大量かつ高速なI/Oが必要な処理を実装してて、
吉里吉里のコンソールから手軽にテストしたいっていう要求から
生ポインタ使ったインタフェースを実装してみたんだ。
オクテット列とかのテンポラリを介すると、その分のコストで正確なベンチがとれないなと思って。
OctetBuilderはいちおう普通のポインタ使わないインタフェースもあるけどね。
buf.push( 0xDE, 0xAD, <%BE AF%>, OctetBuilder.fromHex("DE AD BE AF") );
/* buf.asOctet == <%DE AD BE AF DE AD BE AF%> */
0077名無し@腹八分
2010/05/28(金) 22:19:42ID:tiCntCqx↑評価してほしいです。
お願いします。<(_ _)>
0078名前は開発中のものです。
2010/05/28(金) 22:30:05ID:QLlJeu5rまあテスト用でってのなら、いいんじゃね?
一般的になることはないだろねってことで。
吉里吉里の標準オブジェクトでポインタあつかってるのは、Layer のバッファ関係、
DrawDevicce の interface、Window の メッセージ処理まわり、ぐらいかな。
いずれもプラグインから扱うのが前提の機構
0079名前は開発中のものです。
2010/05/29(土) 09:25:29ID:OkbhcHwt0080名前は開発中のものです。
2010/05/30(日) 11:17:52ID:DGNPHycY0081名前は開発中のものです。
2010/05/30(日) 11:23:43ID:lNqBg+0m0082名前は開発中のものです。
2010/05/30(日) 22:54:43ID:4FPb+t42とやると、背景が一定時間で
背景0→背景1→背景2→背景0→...
と移り変わるようなプラグインを作りました。
プラグインのonTimer関数内で、
elm.storageを適切に変更 → kag.tagHandlers.image(%[page:elm.page, layer:elm.layer, storage:elm.storage]);
と背景切り替えを行っている形です。
しかし、これをやっただけですと、セーブロードに対応できません。
この切り替えが行われている場面でセーブしたセーブデータは、ロードされたときに切り替えまで再現してくれません。
どうしたら、ロードされたときにも再現してくれるでしょうか。
よろしくお願いいたします。
0083名前は開発中のものです。
2010/05/31(月) 00:07:14ID:G2n3r+RBtagHandlers.imageを通しているので、
使用しているレイヤがKAGのbaseレイヤで、セーブ可能ラベルを(中略)、画像情報はセーブされていると思うので、
たぶん、onTimerが動かないとか、いうような話ではないかと思うのですが…
タイマーが動いているか否かのフラグをf.とtf.にもって
ロードのタイミングで比較、必要なら、onTimerを再度設定とか。つ、「Plugin.tjs」
008482
2010/05/31(月) 23:44:23ID:wN77rWjQ分かりにくい状況ですいません。
f.とtf.にフラグを持つ の辺りがよく分からなかったので、色々調べてやってみたいと思います。
onStoreだとかonRestoreなんてのを調べてましたけど、これは見当違いだったみたいですね;;
ご返信、ありがとうございます。
0085名前は開発中のものです。
2010/06/01(火) 00:46:55ID:Pd4qQI2vいや、onStore とか onRestore であってる・・・
0086名前は開発中のものです。
2010/06/01(火) 00:52:23ID:j79FRSuz83です。状況が分かりかねるので確ではありませんが、onRestore、使ってください。見当違いじゃないです!!
「f.とtf.」は、KAGのゲームフラグと一時変数(kag内の辞書flagsとtflagsへの参照)のつもりでした。
別に他の変数でもOKですっていうか、「rain.ks」みたいに、プラグインに変数を持った方が自然かもです。
0087名前は開発中のものです。
2010/06/01(火) 02:38:57ID:Vvvr/3aH0088名前は開発中のものです。
2010/06/01(火) 03:17:44ID:Vvvr/3aHプラグインというのは多分pluginというファイルに掘り込めばいいんでしょ?
で、そこから先が分かりません。
layerExDrawの製作者のHPが見つからないし、どこにも説明らしき物が見つからない。
誰か知りませんか?
0089名前は開発中のものです。
2010/06/01(火) 03:26:51ID:RBkazghK棒グラフならTJSスクリプトだけで出来るよ。
数値の分だけ、fillRectやcolorRectで塗りつぶせばいいだけ。
009088
2010/06/01(火) 03:35:49ID:Vvvr/3aHTJSを全部教えてくれとはいいません。
TJSを学ぶために、まず始めに行くべき所だけでも教えてもらえませんか?
0091名前は開発中のものです。
2010/06/01(火) 03:38:39ID:6OAAlPhY009288
2010/06/01(火) 03:43:45ID:Vvvr/3aHありがとうございました。
しかし、けっきょくあのプラグインの使い方は分からなかった。
googleがこんなに使えないと思ったのは初めてだ。
009388
2010/06/01(火) 03:47:59ID:Vvvr/3aH何とか理解できそうです。
>>89さんのアドバイスも役に立てることができそうです。
ありがとうございました。
0094名前は開発中のものです。
2010/06/01(火) 03:49:30ID:RBkazghKTJSと吉里吉里のリファレンスで基本文法と関数覚えれば、5分くらいで作れるよ。
あと、プラグイン使うときは、
Plugin.link(プラグインのファイルパス)で読み込めばいい。
これもリファレンスに書いてある。
0095名前は開発中のものです。
2010/06/01(火) 03:51:14ID:RBkazghK0096名前は開発中のものです。
2010/06/01(火) 05:27:34ID:YT5KYGyMサンプルもbranchesのkag3exにあるはず。多分ね。なければごうさんの日記のログのどっか。
一通りTJSを読み書き出来るようになっているのが前提みたいだから結論だけ欲しい人には難しいかも。
0097名前は開発中のものです。
2010/06/01(火) 10:30:32ID:cLU1K25v0098名前は開発中のものです。
2010/06/01(火) 10:35:28ID:h6NlFUoXstep.1
まずマニュアルを隅から隅まで読みます
step.2
マニュアルを読んで得た知識を使用します
step.3
目的が達成されます
0099名前は開発中のものです。
2010/06/01(火) 11:09:17ID:4QGnC0i30100名前は開発中のものです。
2010/06/01(火) 12:02:17ID:cLU1K25v0101名前は開発中のものです。
2010/06/01(火) 12:23:03ID:O7x2gz6g0102名前は開発中のものです。
2010/06/01(火) 12:25:01ID:cLU1K25vゴミだし
0103名前は開発中のものです。
2010/06/02(水) 14:58:42ID:GaAYS5px0104名前は開発中のものです。
2010/06/02(水) 18:39:44ID:XikyAc6H(的確に)答えていると言う意味では、
>>98
が正解だと思うけどね w
0105名前は開発中のものです。
2010/06/02(水) 19:03:42ID:GaAYS5px思うしな。
0106名前は開発中のものです。
2010/06/02(水) 19:18:13ID:/IPYYtTBてことで質問者は>>1を良く読めと
0108名前は開発中のものです。
2010/06/02(水) 19:40:28ID:y5ow5RMLSystem.shellExecute( "data/FFFTP.exe" );
010998
2010/06/02(水) 23:39:32ID:DgY+ehAp0110名前は開発中のものです。
2010/06/03(木) 00:06:03ID:jflbwqBr具体的には、メソッド内で関数名や式の中身などをコンソールに
出力したいのです。
0111名前は開発中のものです。
2010/06/03(木) 00:28:36ID:EwdzgW1R0112名前は開発中のものです。
2010/06/03(木) 00:38:33ID:jflbwqBrありがとう御座います。
もう1点なのですが、デバックモードである事をTJS内で判断できますでしょうか?
デバックモード中のみだす様にしたいのです。
無理なら適当な変数で代用可能と思っておりますが、そっちで動機が取れれば
一番なので。
0113名前は開発中のものです。
2010/06/03(木) 09:15:20ID:lpRFNAdF0114名前は開発中のものです。
2010/06/03(木) 14:45:46ID:3i4y/tf+調べ方が悪いのかなかなかヒットしなくて困っています。申し訳ありませんがよろしく御願いします。
↓マクロ内ソース
tf.str="中身いじるよ!";
[link exp="&'kag.historyLayer.store(\n'+tf.str+'\n\n)'"][emb exp="tf.str"][endlink]
↓実行結果
kag.historyLayer.store(\n中身いじるよ!\n\n)←ダブルクオートで囲んでないので文字列として認識されず深刻なエラー
0115名前は開発中のものです。
2010/06/03(木) 14:51:42ID:8aFL/sP0任意のタイミングでAをフェードアウトしてBを再生、Bが終わったらフェードアウト→Aに戻る、
この時Aの再生を、フェードアウトして止まった所の続きからにしたいんですが
そういう事が出来る方法は無いでしょうか?
0116名前は開発中のものです。
2010/06/03(木) 14:59:47ID:MRMJZaGU(\\n'+tf.str+'\\n\\n)
こういう意味?
0117名前は開発中のものです。
2010/06/03(木) 15:03:44ID:3i4y/tf+前スレにあったkag.bgm.currentBuffer.positionとか使うとできなくは無いと思うよ!
0118名前は開発中のものです。
2010/06/03(木) 15:13:01ID:3i4y/tf+んーちょっと違うと思う(\nは改行のつもり動作するかは分からない・・・)
kag.historyLayer.store(\n中身いじるよ!\n\n)これを
kag.historyLayer.store('\n中身いじるよ!\n\n')こうなるようにしたい。
0119名前は開発中のものです。
2010/06/03(木) 15:14:23ID:3i4y/tf+改行はreline() 呼ばなきゃダメかな/(^o^)\
0120名前は開発中のものです。
2010/06/03(木) 15:23:07ID:8aFL/sP0BGMを好きな秒数から再生出来れば良さそうなんですが
そういう事が出来そうな命令が無さそう・・・
0121名前は開発中のものです。
2010/06/03(木) 15:27:05ID:cGph92cLクォートもダブルクォートも \ でエスケープできる。あとはわかるな
0122名前は開発中のものです。
2010/06/03(木) 15:28:26ID:cGph92cLplaybgm タグの start オプション
0123名前は開発中のものです。
2010/06/03(木) 15:35:12ID:8aFL/sP0playbgmのリファレンス、startの項が「ループチューナで指定したラベル」ってなってるんですけど
ループチューナー起動してもラベルなんて設定項目無いし、
このラベルって何を指してるんでしょう? 秒数を入れても何にもならないし・・・
0124名前は開発中のものです。
2010/06/03(木) 15:44:36ID:3i4y/tf+[link exp="&'kag.historyLayer.store(`"'+mp.文字+'`")'" target="&mp.link"][emb exp="mp.文字"][endlink]
エスケープって言うのか・・・助かった。お陰で動いた・・・が改行入れようと(;)を入れようとするとエラーが・・・
少し頑張ってみよう ありがとう
0125名前は開発中のものです。
2010/06/03(木) 15:53:46ID:cGph92cL編集/新規ラベルを作成
いつのバージョンからあるかは知らん。すくなくとも kag で対応した時点以降なら存在してる
0126名前は開発中のものです。
2010/06/03(木) 16:06:07ID:cGph92cLやりたい処理を iscript で function つくって、kag 側からはそれを呼び出すだけにするのオススメ。なやまなくて済むから。
0127名前は開発中のものです。
2010/06/03(木) 16:11:43ID:8aFL/sP0おかしいな、編集なんて項目自体無い・・・と思ったら
いつの間にかループチューナーが「2」になってた・・・
0128名前は開発中のものです。
2010/06/03(木) 17:22:59ID:3i4y/tf+>>124みたいな事もiscript内で出来る?kwsk
途中から再生するだけなら・・・
[iscript]
//第一引数:ファイル名
//第二引数:ループするか(TorF)
//第三引数:サウンドを再生始める場所[ms]
function totyuu(f_storage,f_loop,f_positionMS)
{
tf.volume=kag.bgm.currentBuffer.volume2;
kag.bgm.currentBuffer.volume2=0;
kag.bgm.play(%[storage:f_storage,loop:f_loop]);
kag.bgm.currentBuffer.paused=true;
if(f_positionMS>kag.bgm.buf1.totalTime)
{
System.inform("ファイルのトータル時間を=>"+kag.bgm.buf1.totalTime+"\n指定した時間=>"+f_positionMS+"が超えています","ERROR!!");
}
else
{
kag.bgm.currentBuffer.position=f_positionMS;
}
kag.bgm.currentBuffer.volume2=tf.volume;
kag.bgm.currentBuffer.paused=false;
// kag.bgm.fade(%[time:1000,volume:tf.volume]);
}
[endscript]
[eval exp="totyuu(`"dawn.ogg`",`"false`",5000);"]
フェードってどうやるのかな:(;゙゚'ω゚'):
0129名前は開発中のものです。
2010/06/03(木) 17:41:19ID:cGph92cLや、単純に、
function work(param)
{
kag.historyLayer.store("\n" + param + "\n");
// ほか必要な処理とかてきとーに
}
とか複雑な処理を封じる関数つくっとけば呼びかたがシンプルになるから楽っしょってだけの話。
エンティティ使うとわけわかんなくなるなら、tf とかに変数保存しておいて、それそのままグローバルに使うのが楽。
しかしその場合、変数への代入処理を eval で書く場合、マクロ引数を mp でアクセスするしかなくてちと微妙ではある
kag.tagHandlers = function(elm) {
0130名前は開発中のものです。
2010/06/03(木) 17:52:40ID:cGph92cL[set name="tf.value" value=値]
とか使えば、value 部分にマクロの展開引数とかエンティティとか使えて便利。
kag.tagHandlers.set = function(elm)
{
var name = elm.name;
if (name !== void) {
local l = name.length;
if (l > 3 && name.substr(0,3) == "sf.") {
sf[name.substr(3)] = elm.value;
} else if (l > 3 && name.substr(0,3) == "tf.") {
tf[name.substr(3)] = elm.value;
} else if (l > 2 && name.substr(0,2) == "f.") {
f[name.substr(2)] = elm.value;
}
}
return 0;
} incontextof this;
0131名前は開発中のものです。
2010/06/03(木) 18:02:12ID:8aFL/sP0[eval exp="tf.bgmtime = kag.bgm.currentBuffer.position"]\
で現在再生中のBGMのpositionを取得しておいて、
BGM.tjsを弄って、300行目ちょい辺りの「buf.samplePosition」に、
elm.positionを追加したfadeinbgmからpositionに入れた数値を代入してみてるんだけど
[fadeinbgm storage="bgm" time=1000 position=1500000]
とかだと途中から再生されるのに
[fadeinbgm storage="bgm" time=1000 position=&tf.bgmtime]
っていう風にやると途中からにならない
意味が分からない・・・
0132名前は開発中のものです。
2010/06/03(木) 18:15:20ID:pbpSRJov@eval exp="System.inform(tf.bgmtime, typeof(tf.bgmtime))" とかしてやれば
tf.bgmtimeの値とデータ型(ちゃんと数値になってるか?voidとして乙ってるんじゃないか?とか)が取れる筈だ
0133名前は開発中のものです。
2010/06/03(木) 18:27:21ID:cGph92cLsamplePosition と position は単位が違う
samplePosition に代入するなら samplePosition を取得しないと。
0134名前は開発中のものです。
2010/06/03(木) 18:37:58ID:8aFL/sP0データ型もチェックして、int変換とかかましたりして
それでも動かないからおっかしいなーと首を傾げてた・・・んだけど
>>133
ぎゃおおおおおお!?そんな罠が!!!
合わせたらちゃんと動いた、本当にありがとうございました
0135名前は開発中のものです。
2010/06/03(木) 18:40:56ID:A8DIW8O6まだ、がんばってる? 「@ つき文字列即値」で、
[link exp="&@'kag.historyLayer.reline(); kag.historyLayer.store(\'${mp.str}\'); kag.historyLayer.reline(); kag.historyLayer.reline();'"]
exp属性の中味を関数化するなら、引数でmpを渡す。
0136135
2010/06/03(木) 20:31:36ID:ozYmYk0X>>135の場合は渡すのmpじゃなかった…
@macro name="dd"
[link exp="&@'tf.dd(\'${mp.str}\')'"][emb exp=mp.str][endlink]
@endmacro
@iscript
tf.dd= function(str){
historyLayer.reline();
historyLayer.store(str);
historyLayer.reline(); historyLayer.reline();
} incontextof kag;
@endscript
linkのexpの話は、ここの過去ログその18の672辺りに出てる。
メッセージ履歴に選択した選択肢を表示してあげるの、親切でいいかもね。
丁度、自分もどうしようか迷っていたので、参考になったd。
0137名前は開発中のものです。
2010/06/03(木) 23:58:23ID:3i4y/tf+ごめん俺にはそれの使い方がよく分からんorz
>>136
うおおおおすごい、有難うございます まさに思い通りの動きです・・・。
自分初心者なのでよく分からないのですが
tf.dd= function(str){〜} incontextof kag; と言うのはどういう動きになるんでしょうか
function tf.dd(str){〜} incontextof kag; のような感じなのかなー/(^o^)\
0139名前は開発中のものです。
2010/06/04(金) 00:36:50ID:CJRqrvUY了解! 沼にはまってたので助かりました。本当に有難うございました。
0140名前は開発中のものです。
2010/06/04(金) 20:24:47ID:Pg2+TQPO0141名前は開発中のものです。
2010/06/05(土) 20:16:46ID:533l+S9G0142名前は開発中のものです。
2010/06/05(土) 20:22:18ID:533l+S9G誤爆
>>140
ただ画像用意するだけじゃなかったあれ
0143名前は開発中のものです。
2010/06/05(土) 20:47:29ID:awSORBFu■ このスレッドは過去ログ倉庫に格納されています