■吉里吉里/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/
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:DT1RLuN90463名前は開発中のものです。
2010/11/03(水) 22:02:23ID:aOSqL3oi0464名前は開発中のものです。
2010/11/03(水) 22:36:03ID:d5BLRGSZwin7だけどUACなんか発動しないぞ
0465名前は開発中のものです。
2010/11/03(水) 23:14:40ID:/TeX8FLo7でなるんならVistaでもなるはずだけど、完璧に設定次第
仮にそうなったとしても数クリックで解除できる
0466名前は開発中のものです。
2010/11/03(水) 23:19:31ID:uy40Gowl0467名前は開発中のものです。
2010/11/03(水) 23:32:19ID:Vw6CtWDq俺も最初なんかインストールするたびにアカウントがどうのこうのと五月蠅かった
7とかセキュリティがちがちにしたせいで、逆に使いづらくなったって印象だよな
買っていきなりその洗礼を受けたら、初心者とかまず無理
0468名前は開発中のものです。
2010/11/04(木) 06:35:46ID:GgKBCRyY記述の一番頭に
@store enabled=true
その後
*scene1|シーン1
*scene2|シーン2
*scene3|シーン3
と言う風に適当な場所にラベルを挟んでみたのですが、どのラベルで
栞を挟んでもシーン1の場面が保存されています。
かぐや姫で書いてるのですが、ブラウザのラベル移動のアイコンを
押せば1,2,3とそこに飛ぶので、記述ミスではないようなのですが。
どなたか回答頂けますでしょうか?
0469名前は開発中のものです。
2010/11/04(木) 08:06:31ID:5lAtBUI10470名前は開発中のものです。
2010/11/04(木) 08:11:32ID:Xl2grw0d0471名前は開発中のものです。
2010/11/04(木) 16:30:39ID:GgKBCRyYありがとうございました。
アッサリと解決してお恥ずかしい。
自分のPCでは|の入力を半角で受け付けなかったので
コピペしてきました。
0472名前は開発中のものです。
2010/11/04(木) 17:06:48ID:Wm1uamqa受け付けないことはないと思うけど……
プログラミングとかすれば多用する記号だし
全角で|を入力した後にF8を押して半角にするなり、最初から半角で | と入力できないか?
0473名前は開発中のものです。
2010/11/04(木) 19:07:31ID:UZd6DdjJプログラムの前にPCのいじり方くらい調べてからこいや。
0474名前は開発中のものです。
2010/11/05(金) 00:54:40ID:V716qg8J0475名前は開発中のものです。
2010/11/05(金) 01:25:19ID:uaL3UuOa美的には受け入れがたいから
0476名前は開発中のものです。
2010/11/05(金) 08:21:16ID:B054dC7+言語に入れちゃうのは古臭い
0477名前は開発中のものです。
2010/11/05(金) 11:55:12ID:21wsoOteまだか define ことだけさして古いとか言っちゃってる??
0478名前は開発中のものです。
2010/11/05(金) 12:24:22ID:ZEHJjqnj0479名前は開発中のものです。
2010/11/05(金) 12:49:32ID:uaL3UuOa過程や必要性を無視して「プリプロセッサが〜」と言うのは正直どうかと
0480名前は開発中のものです。
2010/11/05(金) 13:07:20ID:uaL3UuOaプリプロセッサを導入した場合のメリット・デメリットなんかを考えずに、
最新の言語でもプリプロセッサがあるからOKというのは暴論すぎやしないか?と
本当に手放しで推奨できる機能なら、あらゆるコンパイラ言語が取り入れてるだろうよ
0481名前は開発中のものです。
2010/11/05(金) 13:38:06ID:21wsoOteC言語の#defineやマクロでバグを出した人たちが過敏症になってるだけだろ。
まあおかげでC#ではそこら辺は削除されちまったけどな。
0482名前は開発中のものです。
2010/11/05(金) 13:41:26ID:6/0RuWRm0483名前は開発中のものです。
2010/11/05(金) 14:21:10ID:21wsoOte0484名前は開発中のものです。
2010/11/05(金) 14:26:21ID:uaL3UuOa過敏になってるだけと切られたら、水掛け論にしてくれと言わんばかりなんだがな
0485名前は開発中のものです。
2010/11/05(金) 14:32:55ID:0KmUi68U依存関係を自動で解決する最近の主要な言語とは相性が悪いんだよね。
おかげでC#なんかシンボルを定義できる場所と有効範囲に厳しい制限がある。
TJSは明示的に他のファイルを読み込むのでその点については相性が良いといえば良いけど設計が古いといえば古い
0486名前は開発中のものです。
2010/11/05(金) 15:04:25ID:tHX6C2XI枯れた発想が安定した挙動につながる事もあるし
0487名前は開発中のものです。
2010/11/05(金) 21:17:05ID:ltUiEYCF通常のノベルズのときに使っているレイヤと、
ミニゲームで使うレイヤって 変えた方が良いですか? 同じでかまわないですか?
管理のしやすさや、その他不具合が生じるか、などを教えていただきたいです。
例)
通常はlayer=0,1,2,3 くらいを使っていて、ゲームのときはレイヤを10くらい使いたい
→このとき、ゲームの画像を表示させるレイヤを
layer=0,1,2,3,... と使うべきか
layer=4,5,6,... と使うべきか
layer=10,11,12,... あるいは
layer=100,101,102,... など
どう振り分けるのが良いでしょうか。
0488名前は開発中のものです。
2010/11/05(金) 21:41:22ID:hWple1o9ベース
00−09 背景および重ね背景・エフェクト・動画・イベント画
10−29 各キャラ立ち画
30−39効果背景・エフェクト
40−48ミニイベント ミニゲーム パラメーター
49 全前景レイヤーリセット時のダミー背景
みたいに使ってる。
正直実に無駄な使い方だが、注釈書かなくてもレイヤーナンバーだけでだいたい何をしてるのかわかる利点はある
0489名前は開発中のものです。
2010/11/05(金) 22:16:57ID:ZEHJjqnj0490名前は開発中のものです。
2010/11/05(金) 22:18:04ID:RI4nwnDw・立ち絵レイヤー・・・0と1と14
とかになった時が切ない
0491名前は開発中のものです。
2010/11/05(金) 22:18:50ID:l2KrKI/50492名前は開発中のものです。
2010/11/05(金) 22:29:55ID:ltUiEYCFありがとうございます。
予めそれぞれに割り当てておいた方がやはりラクですよね。それでやってみたいと思います。
>>489
ご教授ありがとうございます。
0493名前は開発中のものです。
2010/11/05(金) 22:31:43ID:ltUiEYCF右上の位置を決めて、右寄せで文字を描画する方法はありますか?
点数の表示などをできればそうしたいな… と思ったのですが
0494名前は開発中のものです。
2010/11/05(金) 22:41:33ID:ZEHJjqnjgetTextWidthだっけ(違うかも)、名前忘れてしまったけれど
「この文章を表示したら横幅がどれだけになるか」っていう関数がある
それを使って横幅を求めてからそれに応じて適切な場所に表示する
0495名前は開発中のものです。
2010/11/05(金) 22:50:02ID:ltUiEYCFうーん、生易しい方法はないのですね。
ありがとうございました。勉強になります。
0496名前は開発中のものです。
2010/11/06(土) 00:06:10ID:quhsVrh2自家製レイヤ上での話だよね?
str : "123456" // 123456を描きたいなってとき
hogehoge_top // 書きたい行の高さみたいな
var tw = font.getTextWidth(str); //strが画面で取る長さを計算
var def_left = {本来書き出される(画面上での)左上の位置を取得};
var def_width = {一行の(画面上での)長さを取得};
drawText(def_lef + def_width - tw, hogehoge_top, str, 0x000000, 255);
多分大体こんな感じで行けると思うよ
0497名前は開発中のものです。
2010/11/06(土) 04:30:31ID:phFM+j56一般的には、長い桁の後、短い桁が表示された場合のことをちゃんと考えておこう。
0498名前は開発中のものです。
2010/11/06(土) 07:47:23ID:HXbnyCYO0499名前は開発中のものです。
2010/11/06(土) 10:26:15ID:BQhvCEJ7[eval cond="tf.flg==1" exp="tf.img_left=300, tf.img_top=275"]
[image layer=2 storage="test" left=&tf.img_left top=&tf.img_top page=fore visible=true]
[move layer=2 path="(&tf.img_left, &tf.img_top+100, 0)" time=1000]
こうすると、左上にポーンと飛んでいくのはなぜでしょうか?
condのフラグはしっかり成立しています(なので、imageでは(300,275)に表示されます)
0500名前は開発中のものです。
2010/11/06(土) 10:42:18ID:H8VISklSそう言う時は、とりあえず適当に数値入れて目的の位置に微調整してその数値を補正値にすればいい。
0501名前は開発中のものです。
2010/11/06(土) 10:56:54ID:BQhvCEJ7で解決しました。
>>500ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています