■吉里吉里/KAG/TJS雑談質問スレ■その22
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/10/01(金) 10:44:25ID:z47vESnT自作ゲームの進行状況や製作ツールについての話、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雑談質問スレ■その21
http://hibari.2ch.net/test/read.cgi/gamedev/1274510516/
0363名前は開発中のものです。
2010/10/24(日) 00:55:31ID:m7rrujuR0364名前は開発中のものです。
2010/10/24(日) 00:59:05ID:nDvkp2ZP0365名前は開発中のものです。
2010/10/24(日) 01:09:03ID:TxKihxNO世の中にはそういう変態的仕様が好きな人間がいて、
TJSでそれらを使う使う機会はないと分かっていても、それでも気になっちゃうというか……
さっきの質問もクロージャを吉里吉里で使いたいから聞いたわけじゃないんだ すまん
0366名前は開発中のものです。
2010/10/24(日) 02:27:41ID:0z3YDA8Cオブジェクトを作った後にそのクラスのメンバが変更されたらどうなる?
スーパークラスではどう?
0367名前は開発中のものです。
2010/10/24(日) 02:37:08ID:nDvkp2ZPiTJSDispatch2 の仕様からしてあきらかに未定義。その先のクラスがどう実装されてるかによって実際変わるし。
0368名前は開発中のものです。
2010/10/24(日) 02:38:18ID:nDvkp2ZP0369名前は開発中のものです。
2010/10/24(日) 06:49:13ID:TQZtCv77要するにスクリプトだろ?
しかし、実際にWEBで個人で公開されてる吉里吉里入門では ほとんどがそのさわりだけで
セーブデータの作成方法や、ロードの方法、画面の座標指定、エフェクトの入れ方
音声の途中からの再生、ジョイスティックの対応方法、dll作っての拡張方法などなど
実際に誰もがでくわすような、すこ〜し入った問題になると途端に情報がなくなるか
更新がとだえる
0370名前は開発中のものです。
2010/10/24(日) 07:33:03ID:TxKihxNO平行線になりそうな気もするけど、
言語に実用性を求めるか美学(あるいは変態性)を求めるかが違うんだろ
そんなことをしても意味がないという意見はもっともだし、反論する気もないけど、
そもそもTJSそのものに魅力を覚えているから変態的になるという点は理解してほしい
別に互いに相容れないわけじゃない
>>366
そして調査結果があるのならぶちまけてほしいw
0371名前は開発中のものです。
2010/10/24(日) 15:30:46ID:vkm4xYOz0372名前は開発中のものです。
2010/10/24(日) 18:21:37ID:nBEFo5vdバタン
0373名前は開発中のものです。
2010/10/25(月) 01:15:40ID:svWzhBJmテキストレイヤーを表示させる方法がわかりません。
過去記事漁ると、初期は無理だったけど今はムービー(例えばswf)を
レイヤーとして扱って出来ると書いてあるんだけど、
そっから先の情報が見当たらなく困ってます。
なんかプラグインが必要なんですか?
ちなみに吉里吉里2 2.32 安定版です。
0374名前は開発中のものです。
2010/10/25(月) 01:16:26ID:svWzhBJm0375名前は開発中のものです。
2010/10/25(月) 03:27:20ID:PkLXARZb今更でごめん
このスクリプト、自動改ページに対応させるとしたら、
KAGの挙動を拾わなきゃいけない気がするんだけど、それを実現しようとすればKAG改造必至?
あまり煩雑になるようなら自動改ページは諦めるけれども、
手出ししたことがないから作業量の見当がつかない……
0376名前は開発中のものです。
2010/10/25(月) 05:17:04ID:GSVY/6PBタグリファレンスのvideoタグ
0377名前は開発中のものです。
2010/10/25(月) 09:36:09ID:Jf1ooYG7前スレにレイヤー表示の書式が載ってる
0378373
2010/10/25(月) 16:10:07ID:svWzhBJm>>377
回答ありがとうございました!
理解できてませんが望む処理はできました。
書籍買ったり本家サイト調べたりでも全然進まなかったのですが、
2ちゃんで聞けるって日本もまだまだいい国だと思いましたw
もっと勉強します。
0379名前は開発中のものです。
2010/10/25(月) 20:04:09ID:YQ/4RBaMKAG改造に手を出さなきゃ無理
中でもMessageLayerを扱うのはものすごく面倒だからcmタグをうったほうがいい
0380名前は開発中のものです。
2010/10/25(月) 20:30:07ID:PkLXARZbさんくす 地道にcm打つよ
0381名前は開発中のものです。
2010/10/27(水) 07:35:47ID:ie4jGKEHRGBそれぞれでランダムに0〜255の数値を設定して、それを元にmcolorでカラーフィルターみたいにして使いたいんだけど、10進数を16進数に変換する方法がわかりません。
↓ここまでは書いたんですけど……
[eval exp="f.mc_r = intrandom(0, 255)"]
[eval exp="f.mc_g = intrandom(0, 255)"]
[eval exp="f.mc_b = intrandom(0, 255)"]
[eval exp="f.mc_all ='0x' + f.mc_r + f.mc_g + f.mc_b"]
[image layer=1 page=fore storage="black.png" visible=true opacity=25 mcolor="&f.mc_all" mopacity=255]
当然これだと数値が10進数のままなので上手くいきません。
分かる方いたらお願いします。
0382名前は開発中のものです。
2010/10/27(水) 08:01:51ID:VFsURptl0383名前は開発中のものです。
2010/10/27(水) 08:40:13ID:ie4jGKEH朝早くからありがとうでした!
おかげで上手くいきました。
0384名前は開発中のものです。
2010/10/27(水) 15:07:11ID:ZZJZOYux0385名前は開発中のものです。
2010/10/27(水) 15:45:31ID:wJtns5fV0386名前は開発中のものです。
2010/10/27(水) 20:06:35ID:shLHFwGH0387名前は開発中のものです。
2010/10/27(水) 22:00:23ID:OTLuPYaxメッセージウィンドウを「大モード」と「小モード」で任意に切り替えたいと
考えています。例えば、大の時には以下のように
ああああ
いいいい
と2行表示され、小のときには
いいいい
と最新の1行のみが表示されるようにしたい、というものです。
ウィンドウサイズの切り替え自体は出来たのですが、小から大に戻したときに
ああああ
いいいい
というように、過去の表示可能な文字列まで含めて表示させる(要するに
もとの大モードの時に表示されていた部分が再現される)ようにできません。
代替策として、messages[0]とmesssages[1]をそれぞれ大モード、小モード
として表示サイズを変え、両者に同時に同じ文字列を表示させつつ、
表示させておくのは常に片方のみにして、それを切り替えることで同じ効果が
出せないか、と考えましたが、両者を同期させる具体的なやり方がわかりません。
同じ効果が出せれば他の方法でも構いませんので、どなたか御指南頂ければ
幸いです。
0388名前は開発中のものです。
2010/10/27(水) 22:16:46ID:QJ/JNCS5@macro name=mymacro
@layer message=1
@emb exp=mp.text
@r
@layer message=2
@emb exp=mp.text
@r
@endmacro
@mymacro text=あいうえおあいうえお
みたいな感じでやるのかね
0389名前は開発中のものです。
2010/10/27(水) 22:18:14ID:QJ/JNCS5吉里吉里しばらく使ってなかったもので
意図汲んで下さい
0390387
2010/10/27(水) 22:37:58ID:OTLuPYaxマクロを使ったことがなかったせいでkagをいじることしか頭になく、
その発想が抜けていました。
どうもありがとうございます。
0391名前は開発中のものです。
2010/10/28(木) 22:47:19ID:W9YbV2fG表情変更非同期できるけどあれってKAGEX?
KAGならどうやってんだろう
0392名前は開発中のものです。
2010/10/29(金) 00:34:09ID:6q2NwnUThitThresholdを255に設定したレイヤで画面全体を囲って
半透明にして、調度カーテンの様に後のボタンなどを無反応にさせています。
このレイヤをクリックした時、メッセージレイヤのメッセージを進めるには、
どんな処理を呼び出したら良いでしょうか?。
このレイヤのonMouseUpイベントから呼び出したいので、TJS上からの呼び方を
教えて頂けるとありがたいです。
0393名前は開発中のものです。
2010/10/29(金) 00:39:33ID:dh2v2l+i0394名前は開発中のものです。
2010/10/29(金) 15:45:24ID:qI848ud6KAGEXやね。キーワードは delayrun と nosync
KAGだとトランジション自体はもともと非同期だけど、コマンド実行を非同期に割り込ませる機構が存在しないので冒頭以外では無理
0395名前は開発中のものです。
2010/10/29(金) 22:17:25ID:6q2NwnUTありがとう上手く行きました。
0396391
2010/10/30(土) 19:08:40ID:gAUPWccSありがとうございます。参考になりました!
やはりKAGじゃ無理か・・・
ならKAGEXの使用も視野に入れようかな
0397名前は開発中のものです。
2010/10/30(土) 19:35:24ID:uNd48y/g非同期に表情変更って意味が分からないけど
アニメーションで大概のことは出来るよ
0398名前は開発中のものです。
2010/10/31(日) 02:20:26ID:IM608FeEこれらをいちどにdrawtextで書き出すにはどうすればよいでしょうか?
var arr = new Array();
arr[1] = a;
arr[2] = b;
arr[3] = c;
として、abcと平易に出力したいのです。
今は無理やり、
while(arr[i]!=""){
kag.fore.layers[1].draw.text(10+20*i, 20, 0xfffff);
i++;
}
のように並べてるのですが…。。
0399名前は開発中のものです。
2010/10/31(日) 02:21:36ID:IM608FeEwhile(arr[i]!=""){
kag.fore.layers[1].draw.text(10+20*i, 20, arr[i], 0xfffff);
i++;
}
とやっています。失礼しました。
0400名前は開発中のものです。
2010/10/31(日) 02:23:14ID:IM608FeE書き出したい配列の個数(文字列の文字数)は
1個〜約30個、とバラバラなので
forかwhileでうまく書きたいと考えています。
0401名前は開発中のものです。
2010/10/31(日) 02:29:44ID:cnTkWzk2構文 : join(<デリミタ>, <(予約)>, <空の要素を無視するか=false>)
配列の各要素をデリミタで結合し、結合した文字列を返します。
空の要素を無視するか、が true の場合は、要素中の void は無視されます。
例:
var ar = [ "a", "b", void, "d" ];
var s1 = ar.join(","); // s1 には "a,b,,d" が代入される
var s2 = ar.join(",",,true); // s2 には "a,b,d" が代入される
0402名前は開発中のものです。
2010/10/31(日) 02:32:08ID:IM608FeEintrandom()について
http://homepage1.nifty.com/gutchie/kirikiri_kag/tjs_game002.html
こちら(いつもお世話になっています)に、
>KAGの関数intrandom()を使います。この関数はKAGからしか使えないため、あらかじめkag3\template\system\Util.tjsから該当コードをコピーしておきます。
とありますが、今自分が作っているもので何の宣言もなしにintrandom()を使ったところ、
ランダムで任意の範囲から整数値を取り出すことができたのですが、
このまま使って問題ないのでしょうか?
0403名前は開発中のものです。
2010/10/31(日) 02:37:11ID:uC9ii1HWKAGは使っているんじゃないのかな
そのリンク先のはKAGを使わずにTJSだけでやる場合の注意だと思うよ
0404名前は開発中のものです。
2010/10/31(日) 02:43:04ID:IM608FeEうおー!joinメソッドですか。ありがとうございます。
配列の1個目を無視して2個目以降のみを文字列にする方法をググっているところです。
>>403
TJSだけ使っているのですが、intrandom()が普通に使えてしまうのです。
まぁ、気にしなくて良い… のでしょうか。
0405名前は開発中のものです。
2010/10/31(日) 03:21:22ID:IM608FeE構文 : join(<デリミタ>, <(予約)>, <空の要素を無視するか=false>)
この<(予約)>とは何でしょうか…?
0406名前は開発中のものです。
2010/10/31(日) 03:27:47ID:55oPO1cSってことじゃないかな。とりあえず無視して ", ,"と飛ばしておけばok
ケツに付け足すことをせずにわざわざ予約としてる辺りこだわりを感じますなぁ
0407名前は開発中のものです。
2010/10/31(日) 05:01:07ID:pWFZeHOU予約にして公開したという可能性も……配列の個数を指定していたとかw
0408名前は開発中のものです。
2010/10/31(日) 05:23:52ID:EL1r7beH>kag.fore.layers[1].draw.text(10+20*i, 20, 0xfffff);
とか見ると普通にKAG使ってると思うぞ。
Initialize.tjsでUtils.tjsを読み込んでるから
intrandom()を何処かにコピペしなくても使えるのは当然。
0409名前は開発中のものです。
2010/10/31(日) 09:37:11ID:IM608FeEなるほど。ありがとうございました。
>>407
失礼しました。自分が勘違いをしていたようです。
joinは配列全部をつなぐしか出来ないっぽいですね。
元の配列を変更することにします。本当にありがとうございました。
0410名前は開発中のものです。
2010/10/31(日) 09:38:57ID:IM608FeE0411名前は開発中のものです。
2010/10/31(日) 10:18:12ID:IM608FeEArrayクラスのjoinメソッドで実際にどう処理が行われているか確認して、
それを拡張したメソッドを作りたいなと思ったのですが
joinでいったい何が行われているか、はどこに書いてあるのでしょうか?
systemフォルダの中身を見ましたがjoinという文字列が見つからなかったのですが…。
そもそもやろうとしていることが頓珍漢ですか?
0412名前は開発中のものです。
2010/10/31(日) 10:40:18ID:oOlVcsi7C++で書かれているので悪しからず
0413名前は開発中のものです。
2010/10/31(日) 10:51:45ID:yJ/kOocJcount 見て for で回したほうがちょびっとだけ軽いだろうけど誤差の範囲
0414名前は開発中のものです。
2010/10/31(日) 10:52:15ID:IM608FeEありがとうございます!
TJS_BEGIN_NATIVE_METHOD_DECL(/* func.name */join)
{
// join string with given delimiters.
// arguments are : <delimiter>, [<reserved>],
// [<whether ignore empty element>]
TJS_GET_NATIVE_INSTANCE(/* var. name */ni, /* var. type */tTJSArrayNI);
if(numparams < 1) return TJS_E_BADPARAMCOUNT;
tTJSString delimiter = *param[0];
bool purgeempty = false;
if(numparams >= 3 && param[2]->Type() != tvtVoid)
purgeempty = param[2]->operator bool();
// join with delimiter
bool first = true;
tTJSString out;
tTJSArrayNI::tArrayItemIterator i;
for(i = ni->Items.begin(); i != ni->Items.end(); i++)
{
if(purgeempty && i->Type() == tvtVoid) continue;
if(!first) out += delimiter;
first = false;
out += (tTJSString)(*i);
}
if(result) *result = out;
return TJS_S_OK;
}
TJS_END_NATIVE_METHOD_DECL(/* func.name */join)
見つけたけどお手上げでした∩(・ω・)∩
0415名前は開発中のものです。
2010/10/31(日) 12:09:49ID:oOlVcsi7var out = "", first = true;
for (var i = 0; i < array.length; i++) {
if (!first) out += delimiter; first = false; out += array[i];
}
こういうことをしてるだけ。+=が実際にどういう動作をするかはtTJSStringの方を見ないとわからん。
0416名前は開発中のものです。
2010/10/31(日) 12:34:08ID:USzuRT19試しにCドライブに移動させてみたら起動できました。
デスクトップだと起動できないんでしょうか?
0417名前は開発中のものです。
2010/10/31(日) 12:35:15ID:USzuRT190418名前は開発中のものです。
2010/10/31(日) 12:42:56ID:yHE5VzNS0419名前は開発中のものです。
2010/10/31(日) 13:10:00ID:8W/Jpr0O0420名前は開発中のものです。
2010/10/31(日) 14:26:08ID:Rd49nH45全部書き換えしなおしで面倒臭いんだけど
何かいい方法無い?
0421名前は開発中のものです。
2010/10/31(日) 14:58:47ID:uC9ii1HW0422名前は開発中のものです。
2010/10/31(日) 16:20:05ID:CJvNHneFvar prompt = "栞 ";
を
var prompt = "Data ";
みたいに変えたいだけの場合は、Override.tjsに書くんだろうけど、どんな風に
書くのがスマートなんだろうか?
新しい機能を付け加えるのは出来るんだが、既存のものを上書きするやり方が
良く分からない。
0423名前は開発中のものです。
2010/10/31(日) 16:23:48ID:cnTkWzk2初期にとりあえず書いたコードがそのまま続いちゃって、今更変えるのも
難しくなっちゃったんだろうけど
0424名前は開発中のものです。
2010/10/31(日) 16:42:06ID:uC9ii1HWという荒業もあるな
0425名前は開発中のものです。
2010/10/31(日) 18:40:15ID:VPkRpq9c0426名前は開発中のものです。
2010/11/01(月) 11:44:25ID:Va/KcZFc省略値をありえない値にして、中で条件判断して、その値だったら変数に入れ替えたら?
0427名前は開発中のものです。
2010/11/01(月) 11:55:53ID:l7ZbU1B+[eval exp="mp.hoge=tf.huga" cond="mp.hoge===void"]
0428名前は開発中のものです。
2010/11/01(月) 12:08:45ID:cfkfs1z8スマートなやり方かは知らんが
@macro name="マクロ"
@eval exp="mp.属性 = f.デフォルト" cond="mp.属性 === void"
@tag *
@endmacro
な感じにかまたは
@tag 属性=&mp.属性!==void?mp.属性:f.デフォルト
ってやってる
0429名前は開発中のものです。
2010/11/01(月) 16:47:45ID:bm5laGoi実行中の変数を動的にデフォルト引数にしたいってどんな状況よ?
とか思う俺は吉里吉里スクリプタ初心者ですかそうですか
0430名前は開発中のものです。
2010/11/01(月) 17:11:25ID:l7ZbU1B+何章かに分かれてて章毎に主人公の名前が変わるとか
0431名前は開発中のものです。
2010/11/01(月) 17:14:57ID:3Kt0BjVD0432名前は開発中のものです。
2010/11/01(月) 17:54:19ID:Ej9mMVf/http://ex14.vip2ch.com/test/read.cgi/news4gep/1277294113/
0433名前は開発中のものです。
2010/11/01(月) 19:00:18ID:MbsWO9By>>全て私が独裁するので難しいコトは考えなくて構いません。
日本語<お前らは俺様の道具だから俺様のすばらしいプラン通りヤレ 売れたら俺様の手柄 売れなかったらおまえらのせい
絶対イヤです
0434名前は開発中のものです。
2010/11/01(月) 19:03:04ID:3Kt0BjVD0435名前は開発中のものです。
2010/11/01(月) 19:10:31ID:wiljHGN3そういうのはマクロの再定義をするのがあり方としては正しいんじゃない?
別に同じ内容を重複して書けってわけじゃなくて、
実際の機能を司る部分と、ラッパーとに分けて、ラッパーだけ定義しなおすとか
0436425
2010/11/01(月) 20:58:08ID:ImJv1JK2ありがとうございました。
>>429
wait値なんかをまとめて定義しておいて、テストプレイ時の調整に
利用したいという、くだらない理由だったりします。
0437名前は開発中のものです。
2010/11/02(火) 02:51:00ID:NgznsD080438名前は開発中のものです。
2010/11/02(火) 03:03:28ID:twDpX0OI0439名前は開発中のものです。
2010/11/02(火) 12:26:37ID:J8+ORhdDいやこれは分かれよ
0440名前は開発中のものです。
2010/11/02(火) 14:06:23ID:kWrcyxgPTJSのプリプロセッサって結構使われてるもんなの?
独立した組み込みのプリプロセッサがあるスクリプト言語なんて珍しいと思うけど
0441名前は開発中のものです。
2010/11/02(火) 14:43:38ID:SQk/Q2oC個人的にはプリプロセッサはC言語あたり以外では使わない方がいいと思ってるからな
TJSでも選択肢に入れてない ……宗教かもしれないけど
0442名前は開発中のものです。
2010/11/02(火) 15:09:01ID:CU3yHEQcコンパイル時に処理なので、判定自体を無かったことにできるのがプリプロセッサのいいところ
0443名前は開発中のものです。
2010/11/02(火) 18:48:14ID:twDpX0OI>するだけことじゃ
0444名前は開発中のものです。
2010/11/03(水) 00:58:10ID:FrxwCb47そこかよww
0445名前は開発中のものです。
2010/11/03(水) 14:33:44ID:hExdFDsRみたいなことは可能ですか?
0446名前は開発中のものです。
2010/11/03(水) 14:51:19ID:Vw6CtWDqTJSいじる必要あり
0447名前は開発中のものです。
2010/11/03(水) 15:32:46ID:hExdFDsR0448名前は開発中のものです。
2010/11/03(水) 15:33:43ID:uy40Gowl答えをもらっても解決できないんじゃないか
0449名前は開発中のものです。
2010/11/03(水) 15:48:21ID:hExdFDsRいえ、tjsある程度触っています。
0450名前は開発中のものです。
2010/11/03(水) 15:52:15ID:hExdFDsR[eval exp="kag.fore.layers[1].stopMove()"]
でできました。
0451名前は開発中のものです。
2010/11/03(水) 15:53:08ID:QQ5xJPS7Enter を受けて、move の ContinuousHandler を外す。
0452名前は開発中のものです。
2010/11/03(水) 16:50:31ID:MUdTX1qD0453名前は開発中のものです。
2010/11/03(水) 17:02:20ID:VSyZSIPyMainWindow.tjsのタグハンドラ群を見れば大体は解る。
0454名前は開発中のものです。
2010/11/03(水) 17:38:29ID:hExdFDsR[laycount layers=30]
って多いですか?環境によっては標準に作動しないレベル?
0455名前は開発中のものです。
2010/11/03(水) 17:57:41ID:yaHkgNbe全部いっぺんにmoveさせるとか言うなら知らんけど
0456名前は開発中のものです。
2010/11/03(水) 18:03:58ID:hExdFDsRありがとうございます。安心しました。
moveは1,2個程度っす。
0457名前は開発中のものです。
2010/11/03(水) 18:04:26ID:JTgqT6bp0458名前は開発中のものです。
2010/11/03(水) 21:17:44ID:DT1RLuN90459名前は開発中のものです。
2010/11/03(水) 21:21:20ID:nAZcw/ov0460名前は開発中のものです。
2010/11/03(水) 21:25:36ID:DT1RLuN90461名前は開発中のものです。
2010/11/03(水) 21:30:07ID:8DTHtDvIIEでダウンロードして、エクスプローラでzip展開すると、デジタル署名が無いファイルはセキュリティ警告が出るはずだが、それとUACを勘違いしてるってことはないか?
0462名前は開発中のものです。
2010/11/03(水) 21:51:25ID:DT1RLuN9■ このスレッドは過去ログ倉庫に格納されています