■吉里吉里/KAG/TJS雑談質問スレ■その20
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2010/01/31(日) 19:31:16ID:znLbECSK自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その18
http://pc11.2ch.net/test/read.cgi/gamedev/1244218314/
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/
吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
必要に応じて>>3-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
0858名前は開発中のものです。
2010/05/01(土) 03:44:24ID:PfXSjUP0時間制限 選択肢 KAGで検索したら一番上に出てくるぞ?
勉強する気が無いならやめちまえ
0859名前は開発中のものです。
2010/05/01(土) 08:19:22ID:/Te57Kpo自分から調べて理解しようという気がなきゃ無理
0860名前は開発中のものです。
2010/05/01(土) 09:41:52ID:yQHbMj730861836
2010/05/01(土) 09:54:30ID:xHpxi0lI自分のモニタだと違いがまったくわからないなぁ。
検証していただいたみなさまありがとうございましたm(_ _)m
0862名前は開発中のものです。
2010/05/01(土) 11:08:35ID:1xhr5RBY日常生活のありとあらゆる場面で言えることだと思うが。
志というほどのことでもない。
0863名前は開発中のものです。
2010/05/01(土) 16:09:00ID:1P46rHrUキャリブレーションしろ。
色の感覚おかしくなるぞ。
0864名前は開発中のものです。
2010/05/01(土) 18:47:50ID:pYMMaZf80865名前は開発中のものです。
2010/05/01(土) 21:26:47ID:jVEbN6dBそんなガチガチの実装依存なプラグインがあるか。
ちょっと考えてみた。
アルゴリズム的にはゲーム中の全ステートとテキストのスナップショットを定期
的に取ってユーザーの任意のタイミングでスナップショット書き出せばいい感じか。
パッチ耐性を保つためにどこでスナップショットとるかだな。
ゲームの進行記録を踏破順に持っておい
て巻き戻すときに逆方向にたどって反対
の変数操作をすればスナップショット取る必要ないか。
まあどっちにしてもシナリオをナレーティブにスクリプトに落とし込んでたら実装できないな。
シーン管理やらないとメンドクサイ。
仕様決めないとどうしようもないぞ。
0866名前は開発中のものです。
2010/05/01(土) 21:40:44ID:CzNI+E4i『現在のラベル箇所よりも一つ手前のラベル部分のシナリオを実行する』という形で再現するのは出来そうだわな。
正直そこまでやるのはしんどいけど
0867名前は開発中のものです。
2010/05/01(土) 22:24:23ID:jVEbN6dB分岐条件を固定して全ルートを網羅したグラフのノードにピンポイントで飛ばせばいい。
それなら複雑な操作もあったもんじゃない。
ひぐらし祭カケラ遊びがこういう感じの実装だった気がする。

>>857
そんなつもりはないんですけど、普通そう思いますよね。すみません。
>>858
ありがとうございます。
自分では1時間くらい探したんです。
タグリファレンス(しか知りませんでした)を探したり、検索エンジンで
いろんなキーワードを並べて検索して見たんです。
結果的に簡単に見つかるもの(おそらく)だったのでそう言われても
言い返す言葉も卑屈に聞こえるでしょうが、
勉強する気がないわけでもやる気がないわけでもありません。
本当にありがとうございました。
0869名前は開発中のものです。
2010/05/02(日) 14:53:08ID:Lp4Acnecその間もCTRLを長押ししてると その演出が終わったあとにまたスキップが開始する
といった感じのシステム?があるんですが、これはタグレベルで実装できますか?
Cancelskipだと再開しないし・・・
0870749
2010/05/02(日) 15:27:53ID:ikvsHM+P[eval exp="tf.skipMode = kag.skipMode"]
[cancelskip]
; <- スキップされない演出
[eval exp="kag.skipKeyRepressed = true" cond="tf.skipMode == 4"]
0871名前は開発中のものです。
2010/05/02(日) 15:37:55ID:ikvsHM+Pメニュー等で設定した「次の未読までスキップ」とかも再開させたい場合には、
tf.skipMode の値に応じて skipToStop() などを呼び出してやる必要がある。
0872名前は開発中のものです。
2010/05/03(月) 17:57:01ID:pfKcvUbr0873名前は開発中のものです。
2010/05/04(火) 16:37:02ID:YeYMamV4ともあれテ○リスは無事作ることが出来た。
0874名前は開発中のものです。
2010/05/04(火) 18:30:20ID:994z8v9B0875名前は開発中のものです。
2010/05/04(火) 18:32:08ID:T88ahr6q人生の効率を考えるとテトリスを再開発するのは効率が悪い
なので、ソース、exe形式をオープンで公開するのが一番効率がいい
そして、無料だとなお経済効果もあっていい
0876名前は開発中のものです。
2010/05/04(火) 18:42:58ID:994z8v9B0877名前は開発中のものです。
2010/05/04(火) 20:37:15ID:APqQPi9Y0878名前は開発中のものです。
2010/05/04(火) 20:42:22ID:U1g3Flnjiscript は、シナリオパース時に吉里吉里がそこの tjs スクリプトをあわせて実行してくれるというもので、
関数登録やクラス定義の類だとグローバルに登録されるだけなので、そこで引数をわたせたりするってことはできない。
普通は、iscript はADV用のスクリプトとは別に、起動時とかに一括して登録する部分でつかって、
KAG中からは eval タグまたはエンティティ記述で呼び出す、といった使い方をする
0879名前は開発中のものです。
2010/05/04(火) 23:52:00ID:YeYMamV4[iscript]
function aaa(){
tf.zzz=bbb(tf.xxx,tf.yyy);
return;
}
function bbb(x, y){
if(x+y>0) return 1;
else return 0;
}
[endscript]
こういうの不可ってことでOK?
0880名前は開発中のものです。
2010/05/05(水) 00:12:28ID:pMZKVX5Vちゃんとした関数やクラスを書けばhogehoge.tjsというファイルを読み込むのと同じよーに動作はした筈(うろ覚えだけど)。
もっとも、そういう「ちゃんとした関数やクラス」を作ってるんであれば、わざわざiscript〜endscript間で書くよりも
hogehoge.tjsという別ファイルを用意してそこでキチンと定義した方がメンテナンス性上がるんじゃね?っていう別の話もある。
[iscript]
function fooFunc(aValue, bValue){
// aとbを足した値が1以上なら1, そうでなければ0を返す
return ((aValue+bValue)>0) ? 1 : 0;
}
[endscript]
@eval exp="System.inform( fooFunc(1, 0) )"
@eval exp="System.inform( fooFunc(0, 0) )"
といったような事をfirst.ks辺りに書けばちゃんと1, 0がダイアログで表示されると思う。
だから>>879の例も一応動作はするんじゃねーかな。試してないけど
まあもっとも、関数aaaの中でtf.zzzに関数bbbの戻り値を代入するよりも
function aaa(aValue, bValue){
return bbb(aValue, bValue);
}
のようにして
@eval exp="tf.zzz = bbb(tf.xxx, tf.yyy)"
といった形で『関数を呼び出す時に改めて値を指定する』方式にした方が可読性は高まるような気もする。あくまで俺の主観だけど
0881名前は開発中のものです。
2010/05/05(水) 00:13:25ID:pMZKVX5V0882名前は開発中のものです。
2010/05/05(水) 00:15:12ID:pMZKVX5V@eval exp="tf.zzz = aaa(tf.xxx, tf.yyy)" だな
0883名前は開発中のものです。
2010/05/05(水) 00:29:11ID:ADV8g3OFいや、別に不可じゃない。ただ、その記述は、単に aaa と bbb をグローバルに定義するだけ。
実際の呼び出しはシナリオ中で
[iscript]
aaa()
[endscript]
とするか、
[eval exp="aaa()"]
とすることになる。むろん その定義の末尾に aaa() を書いてもいいんだが、
毎回まるごと iscript を呼び出すのは定義処理の分無駄になるので定義と呼び出しは分けるのが普通
ただ、>>880 も指摘しているが、その記述、tf というグローバル変数を直接呼び出す処理を関数にうめているが、
それは単純に見通しが悪くなるので、bbb のような引数をとって動作するような部分だけ定義しておいて、
パラメータ渡す部分は
[eval exp="tf.zzz = bbb(tf.xxx,tf.yyy)"]
とKAG側にもってきたほうがスタイルとしては好ましい。
必要なところでグローバル変数使うのはもちろんかまわないんだが、むやみに
使うと、どこで値がさしかわったのかとかがわからなくなるのでほどほどにな
0884名前は開発中のものです。
2010/05/05(水) 00:40:11ID:ADV8g3OFeval は呼び出しまるごと書く必要があるし、エンティティはタグの冒頭でないと使えない。
で、そういうときは、tag を独自に増やすように記述すると、案外すっきり処理できたりする。
こんなかんじで処理を登録しておく。
まあ、iscript 使う必要はなくて、Afterinit.tjs に追記するのが良いといえば良い
[iscript]
kag.tagHandlers.mytag = function(elm) {
// 適当に処理を書く
var a = +elm.a + +elm.b;
// 変数は elm.パラメータ名 でタグで指定したものが参照できる。ただし、全部文字列なので数値化したい場合などは
// +elm.a とか前に + をつけて変換すること。
return 0; // これは必要。単発処理なら0。待ち処理とかの場合は -1返したりする。詳細はKAGの内部のコード参照
} incontextof kag;
[endscript]
これの呼び出しは kag からこう書くことになる
[mytag a=10 b=20]
パラメータをいろいろ加工してさらに別のタグを呼び出すといったタグの拡張をしたければ
kag.tagHandlers.newtag = function(elm) {
// elm をいろいろ処理
return kag.tagHandlers.origtag(%[param:値, param2:値]);
} incontext of kag;
とかね。KAGのタグ呼び出しルールを把握するといろいろ応用がきかせやすい
0885名前は開発中のものです。
2010/05/05(水) 15:15:01ID:BlG9Rr1lおおー!
ありがとう、とても勉強になります!
よし、再度引数に挑戦してくる。
0886名前は開発中のものです。
2010/05/05(水) 19:46:55ID:kIuogzesあれ直らないん?
地味に便利というか、使ってたんだけど
0887名前は開発中のものです。
2010/05/05(水) 20:20:51ID:pTSQKGf/0888名前は開発中のものです。
2010/05/05(水) 20:27:24ID:kIuogzesそのうち言ってみる
0889名前は開発中のものです。
2010/05/06(木) 07:20:21ID:uYvPEn9J0890名前は開発中のものです。
2010/05/06(木) 17:35:58ID:obm9GtZM0891名前は開発中のものです。
2010/05/07(金) 07:54:09ID:VZ76Wfd0「if 〜 endif の間にはラベルを挟まないでください。」の理由を知りたいのですが。
下記の通りやってみたのですが
*普通のシナリオ1
[jump target=*分岐先に行くかシステム変数Aの値で判断]
*分岐先に行くかシステム変数Aの値で判断
;1で*分岐先を通り、0で真っすぐ*普通のシナリオ2へ
[if exp="システム変数A==1"]
*分岐先
[endif]
[jump target=*普通のシナリオ2]
if 〜 endifの間のラベルでの
セーブ・ロードは認識できるので、今のところ不都合さは感じないのですが、
気になって……
0892名前は開発中のものです。
2010/05/07(金) 08:39:02ID:WN8T5hqL0893名前は開発中のものです。
2010/05/07(金) 10:46:03ID:NFbqFHxspimageで画像を追加した前景レイヤをmoveで移動させた場合について、
[layopt layer=0 page=fore left=0 top=100 opacity=0]
[image layer=0 page=fore storage="立ち絵" left=0 top=0]
[pimage layer=0 page=fore storage="汗" dx=0 dy=0]
[move layer=0 page=fore path=(0,0,255) time=1000]
[wm]
このとき「立ち絵」はopacityの指定に従って擬似的にフェードインしますが、
「汗」はmoveが終わるまで表示されず、wm後に突然表示されてしまいます
両方のファイルが同時にフェードインしてくるようにしたいのですが、
これを解決するような方法はあるのでしょうか?
よろしくお願いします
0894名前は開発中のものです。
2010/05/07(金) 19:13:23ID:X5nLmiyNifタグをしている最中ということが、栞に記録されないので、
続くendifタグは無視されるだけで、問題ないけど、
elseタグがあると、elseタグが無視されて、else以下の内容も
実行されてしまう、とかって、、、感じだったかな。
(入れ子だともっと複雑だったか)
0895名前は開発中のものです。
2010/05/07(金) 21:32:17ID:5YmanUAA0896名前は開発中のものです。
2010/05/08(土) 00:23:31ID:/Zae7emY0897893
2010/05/08(土) 14:42:11ID:vEbyvvXpこんなことで丸一晩も悩んだのか……
('A`)-3
0898名前は開発中のものです。
2010/05/08(土) 22:51:32ID:v8q/GQXq0899名前は開発中のものです。
2010/05/08(土) 23:05:02ID:l9yMMt2k0900名前は開発中のものです。
2010/05/09(日) 02:21:02ID:14xIF9+hこういったボタンやリンクにjavaスクリプトのID要素みたいな固有の名前を与えて、
通し番号とは無関係にアクセスするような方法はないでしょうか?
0901名前は開発中のものです。
2010/05/09(日) 09:09:53ID:bGxbIEwKどうやったらできますか?
0902名前は開発中のものです。
2010/05/09(日) 10:40:08ID:D0AtAVFt言葉足らずですみません。
ライセンスの問題ではなく、シェアウェアにしてもカジュアルハックされてしまうんじゃないかということです。
0903名前は開発中のものです。
2010/05/09(日) 10:49:41ID:ZdV0odTNhttp://www.google.co.jp/search?source=ig&hl=ja&rlz=1G1GGLQ_JAJP372&q=%E3%82%AB%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%83%8F%E3%83%83%E3%82%AF&meta=lr%3D&aq=f&aqi=&aql=&oq=&gs_rfai=
日本語でおk
0904名前は開発中のものです。
2010/05/09(日) 10:50:15ID:CixGNvJlそもそも吉里吉里はオープンソースです
ハックとか以前の問題です
0905名前は開発中のものです。
2010/05/09(日) 14:35:15ID:mzPUJaexフリーだろうと商業だろうとされる時はされるよ。特に吉里吉里はソースが公開されてるんだから
>>904の言うようにそれ以前の問題(その気になれば誰でも中身取れる&既にツールもある)。
あるいは>>903の6件目辺りにあるような『容易にデータをコピーされる(割れで出回る)』事をカジュアルハックと言ってるなら
それは吉里吉里とかNスクといったエンジンレベルで考えるべき事ではないだろうね。
もちろん、企業によっては割れで入手してもシリアルがなければプレイ出来ないっていう認証を組み込んでたり、それを利用して
割れで流れてるシリアルを無効にしちまう所もあるらしいけど、そうした機能は吉里吉里に求めるべきもんではない。つーか無い(筈)。
主にインストーラ側で用意するか、あるいは独自にdllを用意して組み込むかして自前で調達するっきゃない。
つまり何が言いたいかっつうと、ハックされる事についての対応を吉里吉里に求めんなよって事です。
その辺りはNスクとかでも似たり寄ったりだとは思うけどね。あくまで「ゲームを作る」為のシステムであって
「ゲームの流通をセキュアに保つ」為のシステムではないんだし。
0906名前は開発中のものです。
2010/05/09(日) 14:56:09ID:ZdV0odTN安心して作る汁
0907名前は開発中のものです。
2010/05/09(日) 15:49:10ID:OhsCq8C3*3と*4はエラーが出るのはなぜですか?
VMの仕様でしょうか?
(継承時に子のメソッド内で親のコンストラクタ呼び出しは認められない?)
class Fuga extends Layer {
function Fuga(){ super.Layer(...); }
}
function HogeFunc(){
return (new Hoge(kag, kag.fore.base));
}
class Hoge extends Layer {
var tmp;
function Hoge(){ super.Layer(...); }
function hoge(){ new Hoge(kag, kag.fore.base); }
function fuga(){
tmp = new Fuga(kag, kag.fore.base); // *1
tmp = HogeFunc(); // *2
tmp = new Layer(kag, kag.fore.base); // *3
tmp = new Hoge(kag, kag.fore.base); // *4
}
}
var hoge = new Hoge(kag, kag.fore.base);
hoge.fuga();
0908名前は開発中のものです。
2010/05/09(日) 16:12:53ID:lM/5DB45*3 で見えるのは親のコンストラクタ (this.Layer)
*4 で見えるのは自分のコンストラクタ(this.Hoge)
new はクラスを指定する必要があるので、それぞれ global.Layer 、global.Hoge でアクセスする必要がある
0909名前は開発中のものです。
2010/05/09(日) 16:18:50ID:lM/5DB450910名前は開発中のものです。
2010/05/09(日) 17:03:40ID:jRrLon9Sあったと思うんだが、いつ頃だったか覚えてる奴いたら教えてくれないか?
今になって参考にしたい。
0911907
2010/05/09(日) 17:54:23ID:OhsCq8C3なるほどそういうことですか。
thisが暗黙に呼び出されていることに気づくべきでした。
回答どうもありがとうございました。
0912名前は開発中のものです。
2010/05/09(日) 18:03:02ID:lFtGVH69この実装は困るよな。
真似てるjavascriptのほうでも関数をnew付けて呼び出したときに
挙動が違うだけで本質的な違いがないのに実装上はコンストラクタと関数を
分けなきゃいけないから少し面倒な実装をする。
jsは既存のコンパイラコンパイラじゃ仕様満たせないから
手書きがほとんどだが吉里吉里も似た理由なんだろうか・・・。
ラムダがあるのに実装上レキシカルクロージャ未実装だったり吉里吉里の実装は潜在的にバグを誘発しやすい。
0913名前は開発中のものです。
2010/05/09(日) 18:11:56ID:mzPUJaex暗黙のうちに呼び出されてるのがthisなのか他の位置に在るものなのか、本来なら気にしなくて良いような事でも
目を向ける機会になるってのは確かだし。まあ、そもそもそんなややこしい認識されちまうような書き方すんなよって意見もあるだろうけど。
0914名前は開発中のものです。
2010/05/09(日) 20:26:46ID:GZuS7odZ出来ました。アドバイスありがとうございます。
0915名前は開発中のものです。
2010/05/09(日) 21:46:32ID:3dBWBxJN画面上に表示させるステータスをON/OFFさせるボタンを配置したいので
グラフィカルボタンでメッセージレイヤ2を見えなくしたり見えるようにする方法を教えてください。
0916名前は開発中のものです。
2010/05/09(日) 22:29:24ID:E8XRdbqZfunction hideMessageLayer( hideLayer=0 ){
kag.fore.messages[hideLayer].visible = false;
kag.back.messages[hideLayer].visible = false;
}
ってのを定義して、グラフィカルボタンのexp属性を
exp="hideMessageLayer(非表示にしたいメッセージレイヤの番号)"
みたいなのを継ぎ足せばいいんじゃね
0917915
2010/05/10(月) 00:10:56ID:ID0dgP8eちょっと難しそうですね。
ここで聞いてよかったです。ありがとうございました。
0918名前は開発中のものです。
2010/05/10(月) 19:44:39ID:12i0tLRYglobal明示ならthisも明示にすれば良かったと思うよ。
スクリプトはややこしい部分排除してこそ。
0919名前は開発中のものです。
2010/05/10(月) 19:46:47ID:z2NC2EXb0920名前は開発中のものです。
2010/05/10(月) 20:20:13ID:+BwWz8Ad登録時に辞書つくって登録するような処理を MessageLayers に足す
例: kagex の MessageLayers.tjs を names で検索
0921名前は開発中のものです。
2010/05/11(火) 02:14:42ID:ZjiRx+ta調べても調べても調べても出てこないと思ったら、
思ったよりずっと昔のレスで驚いた。時が経つのは早いな。
どれだけゲーム制作から遠ざかっていたかが良く分かる。
0922名前は開発中のものです。
2010/05/11(火) 19:41:23ID:FN0K/hjJ外部にkey->value,value->keyの両方で取れるマッパー作ったほうがMassageLayerいじらない分ソースの変更に強いんじゃね?
0923名前は開発中のものです。
2010/05/11(火) 22:10:35ID:PUhX0KU9のgetHandlers()内で
link : function(elm) 及び button : function(elm)を経由すれば出来そうな処理ではあるな。
例えば
// AfterInit.tjsとかテキトーな所でglobal.LinkObjects(仮称)を定義しとく
global.LinkObjects = %[];
button : function(elm){
// グラフィカルボタン
if(currentWithBack) current.comp.addButton(elm);
current.addButton(elm);
// ここから追加行(同じもんをlink : function(elm) にも付ける)
if(elm.id !== void){
global.LinkObjects[elm.id] = current.links[-1]; // 最後に作られたリンクをelm.idで関連付ける
}
// ここまで追加行
return 0;
} incontextof this,
er : function(elm){
// 現在のメッセージレイヤのクリア
if(historyWriteEnabled) historyLayer.repage();
if(currentWithBack) current.comp.clear();
current.clear();
// ここから追加行
global.LinkObjects[elm.id] = %[]; // erタグが呼ばれたらリンクオブジェクトが全部死ぬらしいのでついでにコイツも殺しとく
// ここまで追加行
return 0;
} incontextof this,
0924名前は開発中のものです。
2010/05/11(火) 22:12:25ID:PUhX0KU9[link target="*label" storage="hogehoge.ks" id="foo"]リンクテキスト[endlink]
なんてタグが呼ばれた場合、
global.LinkObjects.foo を呼び出してやれば当該リンクオブジェクトにアクセス出来るような気がする。
実際に試した訳ではないから上記ソースが動作する保証は無いが、あくまで考え方の一つとして受け止めといてくれ。
0925名前は開発中のものです。
2010/05/11(火) 22:13:19ID:PUhX0KU9global.LinkObjects = %[];
だ。
0926名前は開発中のものです。
2010/05/11(火) 22:59:27ID:yVMrL44V全体通しで管理するより、MessageLayerで、links配列と平行する配列なり辞書に名前登録で管理したほうが、頭使わなくて済みそう?
900はなんで、そんなことしたいんだろう?
単に順番が狂うのが問題とかなら、buttonタグとかをマクロで包んで名前属性とカウンターつけて
必要なところで、辞書に名前とカウンターの値を保存とかってぐらいでも、よさげだけど。
0927名前は開発中のものです。
2010/05/11(火) 23:16:26ID:5CRr1KQLあー、懐かしいなそのプラグイン…
りーやは俺です
俺も吉里吉里からすっかり離れてしまっているけど
このスレは見てるので何かあればわかる範囲で答えるよ
0928名前は開発中のものです。
2010/05/11(火) 23:37:46ID:9q2nxYVR0929910
2010/05/14(金) 18:07:40ID:TjY00Xnuおおお……生ける伝説に出くわした気分です。
便利なプラグインを公開していただき、ありがとうございます。
分からないことがあったら書きこませて貰いますね。
他のプラグインも含め、未だに使ってる人多く見かけるんで、
りーやさんの功績は偉大ですね。
0930名前は開発中のものです。
2010/05/16(日) 00:32:59ID:ue5nl5Ig0931名前は開発中のものです。
2010/05/17(月) 05:16:16ID:au3T9TBt>>870
遅れましたが、思い通りの動作ができました!!有難うございます。
0932名前は開発中のものです。
2010/05/17(月) 07:04:19ID:au3T9TBt文字を決まった範囲の中央に表示させようとおもい.lengthで調べたのですがaaaaとpppp、PPPPでは同じ文字数でも長さが変わってしまってだめでした(大文字小文字含めて5〜30文字くらい)。
新しいメッセージレイヤーとかはなるべくない方向で作りたいです。
0933名前は開発中のものです。
2010/05/17(月) 08:40:27ID:AxAa+EF+文字幅揃えたいなら等幅フォントにしておいた方がいいよ。
0934名前は開発中のものです。
2010/05/17(月) 09:15:54ID:au3T9TBtなるほど・・・システム面じゃなくてフォントの問題だったんですね。
勉強になります。ありがとうございます〜
0935名前は開発中のものです。
2010/05/17(月) 14:08:02ID:XdD4kg6Z@eval exp="tf.zanzouda=1"
@eval exp="tf.zan=1"
*ru-pu
@eval exp="tf.zanzouda = ++tf.zan
@if exp="tf.zanzouda<5"
@move layer=0 path=(210,60,256) time="100"
@wm
@move layer=0 path=(190,60,256) time="100"
@wm
@endif
@if exp="tf.zanzouda<5"
@jump target="*ru-pu"
@endif
tf.zanzoudaが50になるまでループさせるつもりなのですが、無限ループに陥りますorz
0936名前は開発中のものです。
2010/05/17(月) 14:22:47ID:5jFHn2ZIダブルクォーテーション閉じろヴォケ
0937名前は開発中のものです。
2010/05/17(月) 14:24:49ID:XdD4kg6Z0938名前は開発中のものです。
2010/05/17(月) 14:43:21ID:XdD4kg6Z0939名前は開発中のものです。
2010/05/17(月) 17:22:49ID:Ofec2mIbKAGって、これでエラーが出ないのか……。
いいことなのか悪いことなのかw
0940名前は開発中のものです。
2010/05/17(月) 19:05:28ID:0ER5kOn7マクロ作るときに便利らしいぜ。
0941名前は開発中のものです。
2010/05/17(月) 20:01:38ID:BPmoD4CV>>933の指摘で考え的には解決しちゃってるのかもしれないけど、単純に『特定の範囲内で、特定の文字を中央に表示させる』のが目的なら
lengthを取るよりもgetTextWidthないしgetTextHeightを使い、実態のサイズを取得した方が良いかもしれんよ。
例えばmessage0だったら
@eval exp="tf.strWidth = kag.fore.messages[0].ll.getTextWidth('あいうえお')"
みたいな感じで「その時点のフォントサイズで'あいうえお'を表示する場合、どの程度の横幅を取るのか」を取得出来る筈。(getTextHeightなら縦幅)
そんな具合で実効値を取得した方が都合が良いかもしれん。(lengthで得られた文字数 * フォントサイズ みたいな感じの概算でやると>>932みたいな結果になる)
ぶっちゃけkag.fore.messages[0].ll であってたかどうか自信無いけどな!
0942名前は開発中のものです。
2010/05/17(月) 22:21:20ID:pFZcGK/Kどちらの形式が動作的に好ましいですか?
0943名前は開発中のものです。
2010/05/17(月) 22:23:34ID:bdb7O1Y0JPGはよほどディスクサイズが逼迫してない限り使わん。
0944名前は開発中のものです。
2010/05/17(月) 22:55:13ID:EXO1Pg770945名前は開発中のものです。
2010/05/17(月) 23:14:23ID:bdb7O1Y00946名前は開発中のものです。
2010/05/18(火) 08:06:14ID:TCIE4FsKあなたが神か。
すげー綺麗に整列できました。 有難うございます!!
因みに私はこんな所から参照しちゃいました ><)つkag.current.lineLayer.font.getTextWidth
0947名前は開発中のものです。
2010/05/18(火) 12:28:21ID:51MD1blL「名前が違う得られる結果が同じ」な構造の変数っていうのは便利だよな。
0948名前は開発中のものです。
2010/05/18(火) 15:22:57ID:TCIE4FsKBGM流して終了した時に関数呼び出したり、今現在何秒目か調べたりする事って可能かな?
1個の曲が終わったら違う曲へ移動してずっと再生を維持させてループさせたい
とりあえずタイマー使って自分で指定してみたけど たまにずれたりして曲が終わってもなかなか移動しなかったり、早すぎたり。
そういうことがあったので実際のプレイ経過時間とイベントタイマーとで同期とったりしたいんですが難しいですか?
0949名前は開発中のものです。
2010/05/18(火) 15:28:46ID:NkGH8Zepttp://devdoc.kikyou.info/tvp/docs/kr2doc/contents/LoopTuner.html
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html#setbgmlabel
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html#setbgmstop
0950名前は開発中のものです。
2010/05/18(火) 17:38:43ID:TCIE4FsK高等すぎて分からない\(^o^)/タイマーであきらめよう・・・
0951名前は開発中のものです。
2010/05/18(火) 23:28:35ID:MbgWKx5Iequalsメソッドがあればいいな
0952名前は開発中のものです。
2010/05/19(水) 00:26:57ID:3UoSbAmeちょっとお尋ねさせてもらいたいんですが、
KAGに、クリックを監視するような命令ってあるのでしょうか。
オープニングデモみたいなのを作ってて、
鬱陶しくなったらクリックしたらスキップ、をしたいのですが、
こういった命令の有無があるかどうか知りたいです。
どうかお手隙の方、教えてくださいませんか?
0953名前は開発中のものです。
2010/05/19(水) 01:02:03ID:sf5Hb2TN0954名前は開発中のものです。
2010/05/19(水) 01:08:39ID:rLzVCotDTimer使うってことはつまるとこTJSで書くこと前提だよな?
KAGでそういうことする(音楽が止まったに何かを呼ぶ)為にはsetbgmstopを呼んでる訳だが
TJSだとそれはまんまkag.setBgmStop(%[]) に該当するわけだ(MainWindow.tjsをsetbgmstopで検索してみれ)
だからKAGでやるなら
@playbgm storage="hoge" ; 要はココで曲の再生をする
@setbgm exp="呼び出す関数orTJS式" ; 直下で「停止時に呼ぶ関数orジャンプするシナリオetc」を指定する
TJSでやるなら
kag.bgm.play(%[storage:hoge]); // 曲の再生
kag.bgm.setBgmStop(%[exp:呼び出す関数など]); // 直下で(ry
という風に指定してやれば、望みどおり「音楽の再生が止まった時に何か関数を呼ぶ」が成立するんじゃないか。
「ずっと再生を維持してループ〜」みたいな処理は、呼び出す関数の中で考えるべき内容かもしれん。
現在の秒数を判断する式は判らん。
0955名前は開発中のものです。
2010/05/19(水) 03:57:16ID:vkTf67ZE0956名前は開発中のものです。
2010/05/19(水) 07:12:57ID:1DjtFC50私のはKAGとTJSをごちゃ混ぜに使ってて非常に醜いソースとなっております \(^o^)/NO ソース公開
setbgmstop便利ですね。途中で曲切り替えた時も呼び出されるとは、流石吉里吉里最高!
>>955
神しかいないのかこのスレは
こういう物ってどこかに書いてあるんですか?それとも自分でsystemとかの中から自分で?
それにしても吉里吉里には本当に何でもある事に驚く。自分で作るのバカらしくなるな・・・
0957名前は開発中のものです。
2010/05/19(水) 07:24:26ID:1DjtFC50kagのなかにleftclickhook的なのがあったような
レス数が950を超えています。1000を超えると書き込みができなくなります。