[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 14:25 / Filesize : 284 KB / Number-of Response : 977
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■吉里吉里/KAG/TJS雑談質問スレ■その20



1 名前:名前は開発中のものです。 [2010/01/31(日) 19:31:16 ID:znLbECSK]
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。

※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!

前スレ:■吉里吉里/KAG/TJS雑談質問スレ■その18
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の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)

862 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 11:08:35 ID:1xhr5RBY]
>>860
日常生活のありとあらゆる場面で言えることだと思うが。
志というほどのことでもない。

863 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 16:09:00 ID:1P46rHrU]
>>861
キャリブレーションしろ。
色の感覚おかしくなるぞ。

864 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 18:47:50 ID:pYMMaZf8]
抜きゲとかでよくあるホイールでシーン巻き戻しが実装出来るプラグイン有りますか?

865 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 21:26:47 ID:jVEbN6dB]
>>864
そんなガチガチの実装依存なプラグインがあるか。

ちょっと考えてみた。
アルゴリズム的にはゲーム中の全ステートとテキストのスナップショットを定期
的に取ってユーザーの任意のタイミングでスナップショット書き出せばいい感じか。
パッチ耐性を保つためにどこでスナップショットとるかだな。

ゲームの進行記録を踏破順に持っておい
て巻き戻すときに逆方向にたどって反対
の変数操作をすればスナップショット取る必要ないか。

まあどっちにしてもシナリオをナレーティブにスクリプトに落とし込んでたら実装できないな。
シーン管理やらないとメンドクサイ。
仕様決めないとどうしようもないぞ。

866 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 21:40:44 ID:CzNI+E4i]
「セーブはラベル単位でしか出来ない」=「ラベルがキチンと定義されてればそこまで辿る事は出来る仕様」ってのを逆手にとって
『現在のラベル箇所よりも一つ手前のラベル部分のシナリオを実行する』という形で再現するのは出来そうだわな。
正直そこまでやるのはしんどいけど

867 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 22:24:23 ID:jVEbN6dB]
一番簡単でバグの出にくい方法を思いついた。
分岐条件を固定して全ルートを網羅したグラフのノードにピンポイントで飛ばせばいい。
それなら複雑な操作もあったもんじゃない。
ひぐらし祭カケラ遊びがこういう感じの実装だった気がする。

868 名前:名前は開発中のものです。 mailto:sage [2010/05/01(土) 23:21:02 ID:Te03YpuM BE:3196781388-2BP(1)]
sssp://img.2ch.net/ico/folder4_03.gif
>>857
そんなつもりはないんですけど、普通そう思いますよね。すみません。
>>858
ありがとうございます。
自分では1時間くらい探したんです。
タグリファレンス(しか知りませんでした)を探したり、検索エンジンで
いろんなキーワードを並べて検索して見たんです。
結果的に簡単に見つかるもの(おそらく)だったのでそう言われても
言い返す言葉も卑屈に聞こえるでしょうが、
勉強する気がないわけでもやる気がないわけでもありません。
本当にありがとうございました。

869 名前:名前は開発中のものです。 mailto:sage [2010/05/02(日) 14:53:08 ID:Lp4Acnec]
ゲームとかをやっていると CTRLでスキップしている最中でも一時的にそのスキップをとめてCGや演出が入る。
その間もCTRLを長押ししてると その演出が終わったあとにまたスキップが開始する

といった感じのシステム?があるんですが、これはタグレベルで実装できますか?
Cancelskipだと再開しないし・・・

870 名前:749 mailto:sage [2010/05/02(日) 15:27:53 ID:ikvsHM+P]
これでどう?

[eval exp="tf.skipMode = kag.skipMode"]
[cancelskip]
; <- スキップされない演出
[eval exp="kag.skipKeyRepressed = true" cond="tf.skipMode == 4"]




871 名前:名前は開発中のものです。 mailto:sage [2010/05/02(日) 15:37:55 ID:ikvsHM+P]
ちなみに↑は「キー入力によるスキップ」の自動再開しか考慮してないから、
メニュー等で設定した「次の未読までスキップ」とかも再開させたい場合には、
tf.skipMode の値に応じて skipToStop() などを呼び出してやる必要がある。

872 名前:名前は開発中のものです。 mailto:sage [2010/05/03(月) 17:57:01 ID:pfKcvUbr]
(・∀・)

873 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 16:37:02 ID:YeYMamV4]
[iscript]〜[endscript]間での関数の引数渡しがよく解らん……

ともあれテ○リスは無事作ることが出来た。


874 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 18:30:20 ID:994z8v9B]
テトリスならかなり前にソース付きでスレに上がってたよ

875 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 18:32:08 ID:T88ahr6q]
>>874
人生の効率を考えるとテトリスを再開発するのは効率が悪い
なので、ソース、exe形式をオープンで公開するのが一番効率がいい
そして、無料だとなお経済効果もあっていい

876 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 18:42:58 ID:994z8v9B]
いや誰もそんな話してないから

877 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 20:37:15 ID:APqQPi9Y]
なんだ経済効果って

878 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 20:42:22 ID:U1g3Flnj]
>>873

iscript は、シナリオパース時に吉里吉里がそこの tjs スクリプトをあわせて実行してくれるというもので、
関数登録やクラス定義の類だとグローバルに登録されるだけなので、そこで引数をわたせたりするってことはできない。

普通は、iscript はADV用のスクリプトとは別に、起動時とかに一括して登録する部分でつかって、
KAG中からは eval タグまたはエンティティ記述で呼び出す、といった使い方をする

879 名前:名前は開発中のものです。 mailto:sage [2010/05/04(火) 23:52:00 ID: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?

880 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 00:12:28 ID:pMZKVX5V]
引数はちゃんと渡せるよ。iscriptは単純に「endscriptタグが出てくるまでの間をTJSの式として評価する」的な動作なので
ちゃんとした関数やクラスを書けば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)"
といった形で『関数を呼び出す時に改めて値を指定する』方式にした方が可読性は高まるような気もする。あくまで俺の主観だけど



881 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 00:13:25 ID:pMZKVX5V]
aaa関数しか定義してないのになんでbbb関数を呼んでるんだ……orz

882 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 00:15:12 ID:pMZKVX5V]
間違えた。定義し直したのはaaa関数なのになんでbbbを呼んでるんだ、か。
@eval exp="tf.zzz = aaa(tf.xxx, tf.yyy)" だな

883 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 00:29:11 ID:ADV8g3OF]
>>879
いや、別に不可じゃない。ただ、その記述は、単に aaa と bbb をグローバルに定義するだけ。

実際の呼び出しはシナリオ中で

[iscript]
aaa()
[endscript]

とするか、

[eval exp="aaa()"]

とすることになる。むろん その定義の末尾に aaa() を書いてもいいんだが、
毎回まるごと iscript を呼び出すのは定義処理の分無駄になるので定義と呼び出しは分けるのが普通

ただ、>>880 も指摘しているが、その記述、tf というグローバル変数を直接呼び出す処理を関数にうめているが、
それは単純に見通しが悪くなるので、bbb のような引数をとって動作するような部分だけ定義しておいて、
パラメータ渡す部分は

[eval exp="tf.zzz = bbb(tf.xxx,tf.yyy)"]

とKAG側にもってきたほうがスタイルとしては好ましい。
必要なところでグローバル変数使うのはもちろんかまわないんだが、むやみに
使うと、どこで値がさしかわったのかとかがわからなくなるのでほどほどにな

884 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 00:40:11 ID:ADV8g3OF]
tjs で関数つくっても、それに引数を渡しつつ呼び出すような kag のタグは存在し無いからちょっと使いづらいかもしれない。
eval は呼び出しまるごと書く必要があるし、エンティティはタグの冒頭でないと使えない。

で、そういうときは、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のタグ呼び出しルールを把握するといろいろ応用がきかせやすい

885 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 15:15:01 ID:BlG9Rr1l]
>>880>>883
おおー!
ありがとう、とても勉強になります!

よし、再度引数に挑戦してくる。

886 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 19:46:55 ID:kIuogzes]
吉里吉里のBBSっていつからか、RSSが完全に死んでるけど
あれ直らないん?
地味に便利というか、使ってたんだけど

887 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 20:20:51 ID:pTSQKGf/]
Deeたんに伝えてみたら?

888 名前:名前は開発中のものです。 mailto:sage [2010/05/05(水) 20:27:24 ID:kIuogzes]
BBSか直接かどっちがいいか分からんけど
そのうち言ってみる

889 名前:名前は開発中のものです。 mailto:sage [2010/05/06(木) 07:20:21 ID:uYvPEn9J]
常に一番イヤなブロックが落ちてくるテトリス「Hatetris」

890 名前:名前は開発中のものです。 mailto:sage [2010/05/06(木) 17:35:58 ID:obm9GtZM]
それ、このあいだやってみたらずーーっと S しか落ちてこなかったんだけど



891 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 07:54:09 ID:VZ76Wfd0]
最近吉里吉里を始めた初心者ですが質問です。
「if 〜 endif の間にはラベルを挟まないでください。」の理由を知りたいのですが。
下記の通りやってみたのですが

*普通のシナリオ1
[jump target=*分岐先に行くかシステム変数Aの値で判断]
*分岐先に行くかシステム変数Aの値で判断
;1で*分岐先を通り、0で真っすぐ*普通のシナリオ2へ
[if exp="システム変数A==1"]
*分岐先
[endif]
[jump target=*普通のシナリオ2]

if 〜 endifの間のラベルでの
セーブ・ロードは認識できるので、今のところ不都合さは感じないのですが、
気になって……

892 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 08:39:02 ID:WN8T5hqL]
endif外からもそのラベルに飛べるから

893 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 10:46:03 ID:NFbqFHxs]
質問させてください
pimageで画像を追加した前景レイヤを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後に突然表示されてしまいます
両方のファイルが同時にフェードインしてくるようにしたいのですが、
これを解決するような方法はあるのでしょうか?
よろしくお願いします

894 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 19:13:23 ID:X5nLmiyN]
>>891
ifタグをしている最中ということが、栞に記録されないので、
続くendifタグは無視されるだけで、問題ないけど、
elseタグがあると、elseタグが無視されて、else以下の内容も
実行されてしまう、とかって、、、感じだったかな。
(入れ子だともっと複雑だったか)

895 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 21:32:17 ID:5YmanUAA]
システムの「最初に戻る」コマンドを一時的に禁止にする方法はありますか?

896 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 00:23:31 ID:/Zae7emY]
リファよめ

897 名前:893 mailto:sage [2010/05/08(土) 14:42:11 ID:vEbyvvXp]
自己解決しました
こんなことで丸一晩も悩んだのか……
('A`)-3

898 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 22:51:32 ID:v8q/GQXq]
吉里吉里でシェアウェアって可能ですか?

899 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 23:05:02 ID:l9yMMt2k]
商業ゲームも可能です

900 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 02:21:02 ID:14xIF9+h]
linkやbuttonは kag.fore.レイヤ.links[通し番号]でアクセスしないといけないようですが、
こういったボタンやリンクにjavaスクリプトのID要素みたいな固有の名前を与えて、
通し番号とは無関係にアクセスするような方法はないでしょうか?



901 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 09:09:53 ID:bGxbIEwK]
メッセージレイヤ1にだけグラフィカルボタンを設定したいんですけど、
どうやったらできますか?

902 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 10:40:08 ID:D0AtAVFt]
>>899
言葉足らずですみません。
ライセンスの問題ではなく、シェアウェアにしてもカジュアルハックされてしまうんじゃないかということです。

903 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 10:49:41 ID:ZdV0odTN]
>>902
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

904 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 10:50:15 ID:CixGNvJl]
>>902
そもそも吉里吉里はオープンソースです
ハックとか以前の問題です

905 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 14:35:15 ID:mzPUJaex]
単に『中身を解析される』ということをカジュアルハックと言ってるのなら、そんなもん
フリーだろうと商業だろうとされる時はされるよ。特に吉里吉里はソースが公開されてるんだから
>>904の言うようにそれ以前の問題(その気になれば誰でも中身取れる&既にツールもある)。

あるいは>>903の6件目辺りにあるような『容易にデータをコピーされる(割れで出回る)』事をカジュアルハックと言ってるなら
それは吉里吉里とかNスクといったエンジンレベルで考えるべき事ではないだろうね。
もちろん、企業によっては割れで入手してもシリアルがなければプレイ出来ないっていう認証を組み込んでたり、それを利用して
割れで流れてるシリアルを無効にしちまう所もあるらしいけど、そうした機能は吉里吉里に求めるべきもんではない。つーか無い(筈)。
主にインストーラ側で用意するか、あるいは独自にdllを用意して組み込むかして自前で調達するっきゃない。

つまり何が言いたいかっつうと、ハックされる事についての対応を吉里吉里に求めんなよって事です。
その辺りはNスクとかでも似たり寄ったりだとは思うけどね。あくまで「ゲームを作る」為のシステムであって
「ゲームの流通をセキュアに保つ」為のシステムではないんだし。

906 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 14:56:09 ID:ZdV0odTN]
誰も被害でないから
安心して作る汁

907 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 15:49:10 ID:OhsCq8C3]
読みにくくてすみませんが、以下のコードのうち、*1と*2は問題なく、
*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();


908 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 16:12:53 ID:lM/5DB45]
>>907
*3 で見えるのは親のコンストラクタ (this.Layer)
*4 で見えるのは自分のコンストラクタ(this.Hoge)
new はクラスを指定する必要があるので、それぞれ global.Layer 、global.Hoge でアクセスする必要がある

909 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 16:18:50 ID:lM/5DB45]
実装上コンストラクタとメソッドの区別をつけてない TJS2 特有の癖やね

910 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 17:03:40 ID:jRrLon9S]
前に、りーや氏作の棒グラフプラグインのエラーについて答えてるレスが
あったと思うんだが、いつ頃だったか覚えてる奴いたら教えてくれないか?
今になって参考にしたい。



911 名前:907 mailto:sage [2010/05/09(日) 17:54:23 ID:OhsCq8C3]
>>909
なるほどそういうことですか。
thisが暗黙に呼び出されていることに気づくべきでした。
回答どうもありがとうございました。

912 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 18:03:02 ID:lFtGVH69]
>>909
この実装は困るよな。
真似てるjavascriptのほうでも関数をnew付けて呼び出したときに
挙動が違うだけで本質的な違いがないのに実装上はコンストラクタと関数を
分けなきゃいけないから少し面倒な実装をする。
jsは既存のコンパイラコンパイラじゃ仕様満たせないから
手書きがほとんどだが吉里吉里も似た理由なんだろうか・・・。

ラムダがあるのに実装上レキシカルクロージャ未実装だったり吉里吉里の実装は潜在的にバグを誘発しやすい。

913 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 18:11:56 ID:mzPUJaex]
「コンパイラが認識ミスするような書き方」をしなくなる、という点では有意義かもしれんけどね
暗黙のうちに呼び出されてるのがthisなのか他の位置に在るものなのか、本来なら気にしなくて良いような事でも
目を向ける機会になるってのは確かだし。まあ、そもそもそんなややこしい認識されちまうような書き方すんなよって意見もあるだろうけど。

914 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 20:26:46 ID:GZuS7odZ]
>>896
出来ました。アドバイスありがとうございます。

915 名前:名前は開発中のものです。 [2010/05/09(日) 21:46:32 ID:3dBWBxJN]
すいませんが質問させてください。

画面上に表示させるステータスをON/OFFさせるボタンを配置したいので
グラフィカルボタンでメッセージレイヤ2を見えなくしたり見えるようにする方法を教えてください。

916 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 22:29:24 ID:E8XRdbqZ]
Afterinit.tjsとかfirst.ksで(後者の場合は@iscript, @endscriptタグ必須な)

function hideMessageLayer( hideLayer=0 ){
kag.fore.messages[hideLayer].visible = false;
kag.back.messages[hideLayer].visible = false;
}

ってのを定義して、グラフィカルボタンのexp属性を
exp="hideMessageLayer(非表示にしたいメッセージレイヤの番号)"
みたいなのを継ぎ足せばいいんじゃね

917 名前:915 [2010/05/10(月) 00:10:56 ID:ID0dgP8e]
>>916
ちょっと難しそうですね。
ここで聞いてよかったです。ありがとうございました。

918 名前:名前は開発中のものです。 mailto:sage [2010/05/10(月) 19:44:39 ID:12i0tLRY]
>ややこしい認識されちまうような書き方すんなよ
global明示ならthisも明示にすれば良かったと思うよ。
スクリプトはややこしい部分排除してこそ。

919 名前:名前は開発中のものです。 mailto:sage [2010/05/10(月) 19:46:47 ID:z2NC2EXb]
どなたか>>900についてヒントだけでもいただけないでしょうか……

920 名前:名前は開発中のものです。 mailto:sage [2010/05/10(月) 20:20:13 ID:+BwWz8Ad]
>>919
登録時に辞書つくって登録するような処理を MessageLayers に足す

例: kagex の MessageLayers.tjs を names で検索



921 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 02:14:42 ID:ZjiRx+ta]
910だけど、どうでもいい質問してごめん。
調べても調べても調べても出てこないと思ったら、
思ったよりずっと昔のレスで驚いた。時が経つのは早いな。
どれだけゲーム制作から遠ざかっていたかが良く分かる。

922 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 19:41:23 ID:FN0K/hjJ]
>>920
外部にkey->value,value->keyの両方で取れるマッパー作ったほうがMassageLayerいじらない分ソースの変更に強いんじゃね?

923 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 22:10:35 ID:PUhX0KU9]
別にMessageLayerクラスをいじらなくても、MainWindow.tjsの中
の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,

924 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 22:12:25 ID:PUhX0KU9]
みたいな処理をgetHandlers()の中に組み込む(button, linkといった部分を上記に置き換える)とすれば
[link target="*label" storage="hogehoge.ks" id="foo"]リンクテキスト[endlink]
なんてタグが呼ばれた場合、
global.LinkObjects.foo を呼び出してやれば当該リンクオブジェクトにアクセス出来るような気がする。

実際に試した訳ではないから上記ソースが動作する保証は無いが、あくまで考え方の一つとして受け止めといてくれ。

925 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 22:13:19 ID:PUhX0KU9]
erタグ部分のところの追加コードが間違ってたな……。
global.LinkObjects = %[];
だ。

926 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 22:59:27 ID:yVMrL44V]
レイヤのコピーとかトランジッションとか、タグのwithback属性とかも考慮するんだと、
全体通しで管理するより、MessageLayerで、links配列と平行する配列なり辞書に名前登録で管理したほうが、頭使わなくて済みそう?

900はなんで、そんなことしたいんだろう?

単に順番が狂うのが問題とかなら、buttonタグとかをマクロで包んで名前属性とカウンターつけて
必要なところで、辞書に名前とカウンターの値を保存とかってぐらいでも、よさげだけど。

927 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 23:16:26 ID:5CRr1KQL]
>>921
あー、懐かしいなそのプラグイン…
りーやは俺です
俺も吉里吉里からすっかり離れてしまっているけど
このスレは見てるので何かあればわかる範囲で答えるよ

928 名前:名前は開発中のものです。 mailto:sage [2010/05/11(火) 23:37:46 ID:9q2nxYVR]
ふと某マジカルプリンセスを思い出した

929 名前:910 mailto:sage [2010/05/14(金) 18:07:40 ID:TjY00Xnu]
>>927
おおお……生ける伝説に出くわした気分です。
便利なプラグインを公開していただき、ありがとうございます。
分からないことがあったら書きこませて貰いますね。
他のプラグインも含め、未だに使ってる人多く見かけるんで、
りーやさんの功績は偉大ですね。

930 名前:名前は開発中のものです。 mailto:sage [2010/05/16(日) 00:32:59 ID:ue5nl5Ig]




931 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 05:16:16 ID:au3T9TBt]
やっと規制解除された( つω`)
>>870
遅れましたが、思い通りの動作ができました!!有難うございます。

932 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 07:04:19 ID:au3T9TBt]
また規制されてる間に質問が・・・
文字を決まった範囲の中央に表示させようとおもい.lengthで調べたのですがaaaaとpppp、PPPPでは同じ文字数でも長さが変わってしまってだめでした(大文字小文字含めて5〜30文字くらい)。
新しいメッセージレイヤーとかはなるべくない方向で作りたいです。

933 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 08:40:27 ID:AxAa+EF+]
プロポーショナルフォント使用してるんじゃないの。
文字幅揃えたいなら等幅フォントにしておいた方がいいよ。

934 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 09:15:54 ID:au3T9TBt]
>>933
なるほど・・・システム面じゃなくてフォントの問題だったんですね。
勉強になります。ありがとうございます〜

935 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 14:08:02 ID: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

936 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 14:22:47 ID:5jFHn2ZI]
@eval exp="tf.zanzouda = ++tf.zan"

ダブルクォーテーション閉じろヴォケ

937 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 14:24:49 ID:XdD4kg6Z]
うほっ。すまん、ありがと

938 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 14:43:21 ID:XdD4kg6Z]
できた。ありがと

939 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 17:22:49 ID:Ofec2mIb]
>>935
KAGって、これでエラーが出ないのか……。
いいことなのか悪いことなのかw

940 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 19:05:28 ID:0ER5kOn7]
>>939
マクロ作るときに便利らしいぜ。



941 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 20:01:38 ID:BPmoD4CV]
>>932
>>933の指摘で考え的には解決しちゃってるのかもしれないけど、単純に『特定の範囲内で、特定の文字を中央に表示させる』のが目的なら
lengthを取るよりもgetTextWidthないしgetTextHeightを使い、実態のサイズを取得した方が良いかもしれんよ。

例えばmessage0だったら
@eval exp="tf.strWidth = kag.fore.messages[0].ll.getTextWidth('あいうえお')"
みたいな感じで「その時点のフォントサイズで'あいうえお'を表示する場合、どの程度の横幅を取るのか」を取得出来る筈。(getTextHeightなら縦幅)
そんな具合で実効値を取得した方が都合が良いかもしれん。(lengthで得られた文字数 * フォントサイズ みたいな感じの概算でやると>>932みたいな結果になる)

ぶっちゃけkag.fore.messages[0].ll であってたかどうか自信無いけどな!

942 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 22:21:20 ID:pFZcGK/K]
背景(解像度:640x480)にjpgまたはpngのファイルを使おうと思ってます。
どちらの形式が動作的に好ましいですか?

943 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 22:23:34 ID:bdb7O1Y0]
画質ならPNG
JPGはよほどディスクサイズが逼迫してない限り使わん。

944 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 22:55:13 ID:EXO1Pg77]
効果音(buf=0)が再生中かどうかを判定するのって、どうやるの?

945 名前:名前は開発中のものです。 mailto:sage [2010/05/17(月) 23:14:23 ID:bdb7O1Y0]
kag.se[0].status === "play"

946 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 08:06:14 ID:TCIE4FsK]
>>941
あなたが神か。
すげー綺麗に整列できました。 有難うございます!!

因みに私はこんな所から参照しちゃいました ><)つkag.current.lineLayer.font.getTextWidth

947 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 12:28:21 ID:51MD1blL]
そういう時、参照渡しっつうかエイリアスっつうか
「名前が違う得られる結果が同じ」な構造の変数っていうのは便利だよな。

948 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 15:22:57 ID:TCIE4FsK]
さてまた詰まった/(^o^)\
BGM流して終了した時に関数呼び出したり、今現在何秒目か調べたりする事って可能かな?
1個の曲が終わったら違う曲へ移動してずっと再生を維持させてループさせたい
とりあえずタイマー使って自分で指定してみたけど たまにずれたりして曲が終わってもなかなか移動しなかったり、早すぎたり。
そういうことがあったので実際のプレイ経過時間とイベントタイマーとで同期とったりしたいんですが難しいですか?

949 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 15:28:46 ID:NkGH8Zep]
>>948
ttp://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

950 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 17:38:43 ID:TCIE4FsK]
>>949
高等すぎて分からない\(^o^)/タイマーであきらめよう・・・



951 名前:名前は開発中のものです。 mailto:sage [2010/05/18(火) 23:28:35 ID:MbgWKx5I]
>>947
equalsメソッドがあればいいな

952 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 00:26:57 ID:3UoSbAme]
こんばんは。
ちょっとお尋ねさせてもらいたいんですが、
KAGに、クリックを監視するような命令ってあるのでしょうか。
オープニングデモみたいなのを作ってて、
鬱陶しくなったらクリックしたらスキップ、をしたいのですが、
こういった命令の有無があるかどうか知りたいです。
どうかお手隙の方、教えてくださいませんか?

953 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 01:02:03 ID:sf5Hb2TN]
マニュアルを click で検索するぐらいはしたかい?

954 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 01:08:39 ID:rLzVCotD]
>>950
Timer使うってことはつまるとこ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
という風に指定してやれば、望みどおり「音楽の再生が止まった時に何か関数を呼ぶ」が成立するんじゃないか。
「ずっと再生を維持してループ〜」みたいな処理は、呼び出す関数の中で考えるべき内容かもしれん。


現在の秒数を判断する式は判らん。

955 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 03:57:16 ID:vkTf67ZE]
kag.bgm.currentBuffer.position

956 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 07:12:57 ID:1DjtFC50]
>>954
私のはKAGとTJSをごちゃ混ぜに使ってて非常に醜いソースとなっております \(^o^)/NO ソース公開
setbgmstop便利ですね。途中で曲切り替えた時も呼び出されるとは、流石吉里吉里最高!
>>955
神しかいないのかこのスレは
こういう物ってどこかに書いてあるんですか?それとも自分でsystemとかの中から自分で?

それにしても吉里吉里には本当に何でもある事に驚く。自分で作るのバカらしくなるな・・・

957 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 07:24:26 ID:1DjtFC50]
>>952
kagのなかにleftclickhook的なのがあったような

958 名前:名前は開発中のものです。 mailto:sage [2010/05/19(水) 23:58:46 ID:sF8YjRGX]
マクロ内で x+y や x+定数 の計算をさせたいのですが
[emb exp="mp.x + mp.y"]
とすると変数が文字列扱いになって困っています
どのようにすればよいのでしょうか?

959 名前:名前は開発中のものです。 mailto:sage [2010/05/20(木) 00:08:42 ID:zzNa8QYG]
整数なら int(mp.x) + int(mp.y)
実数なら real(mp.x) + real(mp.y)

960 名前:名前は開発中のものです。 mailto:sage [2010/05/20(木) 00:33:11 ID:x+HjEs+4]
>>959
ありがとうございます
無事解決いたしました



961 名前:名前は開発中のものです。 mailto:sage [2010/05/20(木) 17:43:51 ID:qBfpW60/]
吉里吉里を使ったゲームをやってるんですが途中でいきなり再起動したりブルースクリーンになったりします。
別の吉里吉里のゲームをやっても同様のことがおきるのでどうやら吉里吉里に問題があるみたいなのですが。
(吉里吉里でないゲームや普通に使ってる分にはPCは全然問題ないです)

ウイルスバスターとか常駐を止めても同じ事がおきるのですが対処法とあったりしますか?

962 名前:名前は開発中のものです。 mailto:sage [2010/05/20(木) 17:56:01 ID:+uH5r29A]
>別の吉里吉里のゲームをやっても同様のことがおきるので
>どうやら吉里吉里に問題があるみたいなのですが。

そこで吉里吉里に原因を求めるのが一段飛ばしてる感じがするな
PCに問題あるか動作条件満たしてないんじゃねーの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef