トップページgamedev
1001コメント355KB

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。04/09/15 02:43:06ID:lnIfU+bZ
ノベル製作ツール吉里吉里/KAGを使用している人達が雑談や質問をするスレッドです。
本家BBSで聞きづらい質問や初歩的な質問などでもよいのでわからないことがあればどうぞ。
自分のゲームの進行状況や製作ツール等についての話、TJS等の質問もお待ちしています。
マルチポストはやめましょう。個人叩きも禁止です。

4(タイトルは3) http://pc5.2ch.net/test/read.cgi/gamedev/1081199649/
3 http://pc5.2ch.net/test/read.cgi/gamedev/1067436686/
2(再利用) http://pc2.2ch.net/test/read.cgi/gamedev/1044256119/
1 http://pc2.2ch.net/test/read.cgi/gamedev/1021890648/

【公式】
kikyou.info
http://kikyou.info/

吉里吉里ダウンロードページ
http://kikyou.info/tvp/
0807名前は開発中のものです。2005/03/27(日) 01:10:53ID:wf9tnL7D
804
釣りに反応してえらそーにしてる真性の馬鹿はこいつ?
08088042005/03/27(日) 01:15:05ID:OcSphDbx
ネタにきまってんだろうが
だいたいが亀頭とってどうする
それとageるなヴォケ
0809名前は開発中のものです。2005/03/27(日) 08:23:06ID:Lh75qUj9
>>805-806
いいね。

「メッセージを隠す」でもシステムメニューが消えないのは、仕様?
0810名前は開発中のものです。2005/03/27(日) 12:32:23ID:8VBhI5zo
51:[menupaneopts name="root" autohide=true]

にすれば root パネルも消える。
メッセージ履歴を表示すると(履歴レイヤがモーダルモードなので)イベント受け付けなくなるバグ有り。
多分exclusives/hidechainsあたりの仕様変えると思うので実際に運用するのはチト待たれたし。
0811名前は開発中のものです。2005/03/29(火) 20:42:43ID:a9plaJaG
tf.dic = %[];
tf.dic.layers = [new Layer(window, parent), new Layer(window, parent)];
// (ry
delete tf.dic;

↑の様に dic ごと layers を消しても大丈夫そうなんですが…
横着せずに一つ一つ invalidate なり delete なりしたほうが良いですかね?
dic に色々追加していって一気に削除〜みたいなことを目論んでるんですけど。
0812名前は開発中のものです。2005/03/29(火) 21:03:59ID:NYG/0HlF
iscriptの中で、変数に格納した数値をメッセージレイヤーに表示したいのですが、
どのようにすればいいのでしょうか?
ただのテキストなら出力できますが、変数の中身はどうすれば……?
どなたか宜しくお願いします
0813名前は開発中のものです。2005/03/29(火) 21:35:27ID:/FIMQKB5
>>812
emb、と反射的にレスしようとして?????
iscriptの中でただのテキストが出力できるなら、同じようにして変数も出力できるけど?
0814名前は開発中のものです。2005/03/29(火) 21:52:53ID:NYG/0HlF
>>813
シングルクォーテーションを外したら表示できました……ゴメンナサイ
0815名前は開発中のものです。2005/03/29(火) 23:10:22ID:cyi4fg8k
>>811
状況による。
delete は変数名を undefined 状態に戻す。
invalidate は代入されてるオブジェクトの無効化フラグを立てる。
(GCにコレ消しても大丈夫よって教えるのね)

23:03:13 コンソール : tf.dic = new Dictionary(); = (object)(object 0x01F04F98:0x01F04F98)

23:03:24 コンソール : tf.dic.layers = new Array(); = (object)(object 0x01F0EF50:0x01F0EF50)

23:03:48 コンソール : tf.layers = tf.dic.layers; = (object)(object 0x01F0EF50:0x01F0EF50)


だから delete の場合、参照が他所に残ってたらオブジェクトも残る。

23:04:00 コンソール : delete tf.dic; = (int)1
23:04:06 コンソール : tf.dic = (void)

23:04:09 コンソール : tf.layers = (object)(object 0x01F0EF50:0x01F0EF50)

invalidate の場合でも、根元の辞書配列型が無効化されるだけなので要素オブジェクトは健在。
( tf.dic.layers 経由のアクセスが不可能になるだけ )

23:07:41 コンソール : invalidate tf.dic; = (int)1

23:07:49 コンソール : tf.dic = (object)(object 0x01F23008:0x01F23008)

23:07:58 コンソール : tf.dic.layers = (例外発生)オブジェクトはすでに無効化されています

23:08:09 コンソール : tf.layers = (object)(object 0x01F23608:0x01F23608)
0816名前は開発中のものです。2005/03/29(火) 23:18:24ID:cyi4fg8k
何だか妙な具合に改行されてしまった。
普通GCはオブジェクトの参照カウンタが0になったら勝手に働くので、
(吉里吉里のVMがどう働くのかは知らないけど、普通は、ね)
メモリ大量に食うから早く消して欲しいオブジェクトとか
メモリは食わないけど数が沢山あるオブジェクトなんかを invalidate すると○。

大本を invalidate するなり delete するなりすれば要素変数名も勝手に消えるので、
辞書配列なり配列なりの各要素に対して delete するのは超無意味。
辞書配列なり配列なりの各要素に対して invalidate したい場合は再帰を使うと○。

function recursiveInvalidate( obj ) {
/**/
/**/ if( typeof( obj ) != "Object" ) return;
/**/ else if( obj instanceof "Dictionary" ) recursiveInvalidate( ( new Array() ).assign( obj ) );
/**/ else if( obj instanceof "Array" ) {
/**//**/
/**//**/for( var i = 0 ; i < obj.count ; i++ ) recursiveInvalidate( obj[ i ] );
/**/ }
/**/ invalidate obj;
}
こんな感じかな。
08178112005/03/30(水) 16:37:37ID:SihZ6X52
>>815-816
レスありがとうございます。

>>815の例、とても分かりやすいです。
最終的に tf.layers に対して※ delete invalidate しないと
コンソール2行目の new Array() が残ったまま、ということですね。
※deleteは要素layers、invalidateはlayersが参照しているオブジェクト

>>816
>普通GCはオブジェクトの参照カウンタが0になったら勝手に働くので、
>(吉里吉里のVMがどう働くのかは知らないけど、普通は、ね)
なるほど。>>811の時点では、辞書配列を無効化すると吉里吉里あるいは辞書自身が
各要素に対して invalidate を実行すると思ってましたが、
上記の例も踏まえるとGC(Garbage Collection のことですよね?)が
タイミングと参照をみて無効化してくれるみたいですね。

で、その場で明示的にかつ汎用的に無効にするということで
function recursiveInvalidate なのですが…
なかなか興味深いですね。
( new Array() ).assign( obj ) の部分だけでも参照、複製、寿命などなど。

いろいろと参考になりました。
なんかグダグダになってしまってスミマセン。
0818名前は開発中のものです。皇紀2665/04/01(金) 15:46:08ID:D39lcJ5N
こんにちは、まだまだ吉里吉里初心者で
色々読んだりやったりしながら勉強中の者です。
現在少し困った事になっているので、もし宜しかったらお教えください。

・ゲームをプレイしてみた時に、必要な回数以上にクリックすると
メッセージフレームが表示されずに、中に出るはずの文字も左上の方に
表示されてしまいます。

・前景レイヤで最初に出ていたキャラクターを消して他のキャラクター
にする時に、唐突に消えて唐突に出て来てしまって少しおかしい。
なので、ソフトに消える方法が無いか検索中です。

0819名前は開発中のものです。皇紀2665/04/01(金) 18:46:54ID:ti47G1iY
日本語をまず勉強しよう。
日本語ってか、KAG用語の語彙増やせ。

>・ゲームをプレイしてみた時に、必要な回数以上にクリックすると
>メッセージフレームが表示されずに、中に出るはずの文字も左上の方に
>表示されてしまいます。

問題のあるKAGスクリプトを書いてるか、吉里吉里のバグ。
詳細がわからん事には何とも言えぬ。
メッセージフレームってのは何だ。フレーム画像を設定してるとかか?

>・前景レイヤで最初に出ていたキャラクターを消して他のキャラクター
>にする時に、唐突に消えて唐突に出て来てしまって少しおかしい。
>なので、ソフトに消える方法が無いか検索中です。

日記はチラシの裏に書け。リファレンスを良く読む事。
やりたいであろう事はトランジションで実現可能。
cf.
ttp://www.ultrasync.net/dee/kr2helps/kag3doc/contents/
0820名前は開発中のものです。皇紀2665/04/01(金) 18:49:43ID:ti47G1iY
えっと、エイプリルフール?
皇紀って何だ。皇紀って。
0821名前は開発中のものです。皇紀2665/04/01(金) 20:14:33ID:3v4t/QzM
具体的な回答を得たければ具体的な質問を書け。
0822名前は開発中のものです。皇紀2665/04/01(金) 20:26:05ID:8hTITnI8
>818 オフィシャルとのマルチ?
0823818皇紀2665/04/01(金) 20:53:10ID:1482yVT3
すみません、質問も容量を得ずにご迷惑おかけしました。

>822
そうです。
色々ご指導いただいて無事進む事が出来ました。

ありがとうございます。
0824名前は開発中のものです。皇紀2665/04/01(金) 20:59:16ID:JhYMEIaM
右クリックサブルーチンのロード画面に直接リンクしたいんだけど
なかなかうまくいかない。

勉強が足らんなぁ。
0825名前は開発中のものです。皇紀2665/04/01(金) 21:39:42ID:Yq4DlimV
exp="f.rclickmode=1, kag.callExtraConductor('rclick_tjs.ks', '*rclick')"
じゃ駄目なのか?
0826名前は開発中のものです。皇紀2665/04/01(金) 21:39:46ID:ti47G1iY
>>824
cf.
>>766-769

100レスくらい見返せYO!
0827824皇紀2665/04/01(金) 23:01:54ID:JhYMEIaM
>>767をどう応用すればリンクに対応させれるのかよくわからないYO!
知識もあんまりないし、しばらく色々と触って遊んでみるよ。
0828名前は開発中のものです。皇紀2665/04/01(金) 23:07:34ID:ti47G1iY
[link exp="rclickconfig_object.show(); rclickonfig_object.makeLoadMenu();"]

↑じゃ駄目なのか?
0829824皇紀2665/04/01(金) 23:22:49ID:JhYMEIaM
>>828
できますた。まっさきにそれをやってみてしくじったんだけど
単に打ち込みミスだった模様、スマソ。
0830名前は開発中のものです。2005/04/02(土) 05:00:52ID:DY6GzKEX
ゲーム作ってみたくなって昨日から吉里吉里の
勉強を始めたものの、KAGと心中参照にしてたら
PIA少尉に毒されて、すっかり性格が歪んでしまった。
俺、別にマイクロソフト嫌いじゃないし、gif撲滅させようとも
思ってないよ(;´Д`)
なんか向いてねーのかな……シナリオ編に進むの億劫だ
0831名前は開発中のものです。2005/04/02(土) 08:24:40ID:UbUOp45D
どんだけ感受性強いんだおまいは
0832名前は開発中のものです。2005/04/02(土) 12:01:07ID:DOnf9Q1I
俺も、あの主観的すぎる文章は好きじゃない。当時は俺も我慢して読んでいたが、
今では心中だけじゃなく、参考になるサイトやらマニュアルやらがぐっと増えている。
是非是非有効活用してくれ。
0833名前は開発中のものです。2005/04/02(土) 13:08:44ID:DOnf9Q1I
というか公式えらいことになってんな、おい。
0834名前は開発中のものです。2005/04/02(土) 19:30:12ID:2jfDuj6K
本家掲示板のよっしーって…小学生なのか…?
0835名前は開発中のものです。2005/04/03(日) 00:39:02ID:m2zUijKj
リンクをポイントすると出現する矩形のことで質問です。
矩形の下に表示されているもののみをすべてネガポジ反転させたいのですが、どうすればできるのでしょうか?
highLightLayerを対象にadjustGammaメソッドを使っても、矩形の色のみが反転されてしまいます。
もしわかる方がいらっしゃったら、教えてください。
0836名前は開発中のものです。2005/04/04(月) 02:03:29ID:x6c+GvNN
>>835
あ、これ考えとくの忘れてた。今日暇だったら考えてみよう。
0837名前は開発中のものです。2005/04/04(月) 14:21:25ID:nLQCMyGF
>>836
俺も知りたいから頑張って考えてー
0838名前は開発中のものです。2005/04/04(月) 15:52:57ID:n+BkzOJk
こんな感じでできるんじゃない?

・highLightLayer は完全不透明
・highLightLayer を表示するときに,その下に見えてるものを highLightLayer に
 コピーして,その highLightLayer に対して adjustGamma
08398352005/04/04(月) 18:11:00ID:r33nljSS
>>838
dくす。
それでいけるかもしれないと思って元のコードのhighlightLayer.colorRectの部分を、下のように置換えてみました。

highlightLayer.piledCopy(
x - highlightLayer.left,
y - highlightLayer.top,
highlightLayer.parent,
x, y,
linkn.w[i], linkn.h[i]);
highlightLayer.adjustGamma(, 255, 0, , 255, 0, , 255, 0);

でもそうしたら、矩形が上に数ピクセルしか表示されなくなってしまいました。
俺の記述の仕方が悪いんでしょうが、どう直せばいいのでしょうか?
0840名前は開発中のものです。2005/04/04(月) 18:22:22ID:RpSTQAoT
本家掲示板に春の嵐が………!!!
0841名前は開発中のものです。2005/04/04(月) 18:40:53ID:5yBRvKl5
>>839
//↓これでうまくいきました。
highlightLayer.piledCopy(
x - highlightLayer.left,
y - highlightLayer.top,
highlightLayer.parent.parent,
x + this.left, y + this.top,
linkn.w[i], linkn.h[i]);
highlightLayer.adjustGamma(, 255, 0, , 255, 0, , 255, 0);

場所はhighlightLink関数内の
highlightLayer.visible = true;
とあるすぐ上のfor文内です。(約1800行付近)
08428352005/04/04(月) 18:48:06ID:r33nljSS
>>841
あ、なるほど! 上手くできました、ありがとうございます。
0843名前は開発中のものです。2005/04/04(月) 20:21:18ID:SVDUQShg
このスレは勉強になるな。
0844名前は開発中のものです。2005/04/04(月) 20:53:48ID:yl70x1eG
誰か本家のよっしー(=みち)にIPとUA晒されてること教えてやれ。
なんでこういう厨房って揃いも揃って「すみません兄弟がやったみたいです」って言うんだ?w
万が一本当だったとしても厨房の兄弟ってことで全然言い訳にもならんわけだが。
0845名前は開発中のものです。2005/04/04(月) 20:55:29ID:n+BkzOJk
本家だって大変勉強になるよ
まともな時は。
0846名前は開発中のものです。2005/04/04(月) 23:56:11ID:r33nljSS
本家の回答者さんたちが切れてきている予感。
0847名前は開発中のものです。2005/04/05(火) 00:22:02ID:JwXWnpNu
>>844

むしろなんでバレたか教えない方がおもしろいだろw
0848名前は開発中のものです。2005/04/05(火) 00:57:16ID:JwXWnpNu
>>846

MEG氏やらんか氏も回避する大物だぜ
0849名前は開発中のものです。2005/04/06(水) 07:25:45ID:efP26AF+
公式掲示板の新機能、便利だなあ。
0850名前は開発中のものです。2005/04/07(木) 03:21:50ID:h/U813JX
リンクの既読判別マクロ化サンプルをlinkタグに置き換えたところ、
linkタグにexp属性でつけていた関数が無効になってしまいました

[macro name=link_a]
[eval exp="tf.temp=mp.target.length"]
[eval exp="tf.temp=mp.target.substring(1,tf.temp-1)"]
[if exp="sf[tf.temp]==void"]
[eval exp="sf[tf.temp]=0"]
[font color="0x808080"]
[endif]
[if exp="sf[tf.temp]==1"]
[endif]
[eval exp="mp.exp='tf.temp2=kag.fore.messages[1].links[kag.fore.messages[1].lastLink].target,tf.temp=tf.temp2.length,tf.temp=tf.temp2.substring(1,tf.temp-1),sf[tf.temp]=1'"]
[link * exp=%exp]
[endmacro]

で、
[link_a target=*abc exp="f.abc=f.abc+1"]
こんな感じに普通のlinkタグみたいに使いたいのですが、
mp.expとか色々試してもうまくいきません。
どなたか宜しくお願いします
0851名前は開発中のものです。2005/04/07(木) 03:41:37ID:TDcOvORP
下から3行めの
> [eval exp="mp.exp='〜〜〜'"]
ここで,mp.exp が上書きされてしまっているから。

> [eval exp+="mp.exp='〜〜〜'"]
とかに変えれば,一応 exp 属性が効くようになるとは思う。
0852名前は開発中のものです。2005/04/07(木) 03:43:22ID:TDcOvORP
あう,ちがうちがう

> [eval exp="mp.exp+=',〜〜〜'"]
ですやね。
08538502005/04/07(木) 21:58:14ID:h/U813JX
>>851
おお、なるほど!
うまく動きました。ありがとうございました!
0854名前は開発中のものです。2005/04/10(日) 23:11:53ID:91viTNrY
最近、W.Dee氏の「ではー」を見ない気がする。
0855名前は開発中のものです。2005/04/10(日) 23:50:02ID:ePbPxUJv
>>854
本家が春満開だったからお疲れなんだろう
0856名前は開発中のものです。2005/04/12(火) 17:46:03ID:1RDeaCcw
onClick や onMouseClickを感知して、クリックされた座標を取るには、
リスナークラスとか必要なんでしょうか?

トランプゲームでクリックしたらめくれる、と言うのをやりたいんですが
TJSのfunction内でどう書けばいいでしょう?
0857名前は開発中のものです。2005/04/12(火) 19:35:26ID:2ZjPBZ3W
>>856
うん、というか、自分でいちいち座標で分けるとかしなくて、
トランプの各カードを一つずつのレイヤにして、
こんな感じにするのが素直だと漏れは思う

class TrumpCard extends Layer{
; ...
; ...
; function onClick{
; ; // クリックされた
; ; super.onClick();
; ; turnover();
; ; }
; function turnover(){
; ; // めくれる
; ; }
; }
0858名前は開発中のものです。2005/04/12(火) 20:54:59ID:xQP2M/ZC
>>857
基本的に同意。
ただ同期取りたい時どう組めばいいのか分からん。

あとコード整形するなら全角スペースにしれ。
コピペしたらエラーが出る? ソンナノ('A`)シラネ
0859名前は開発中のものです。2005/04/12(火) 21:44:44ID:2ZjPBZ3W
>>858
この整形いい考えだと思うんだけどなあ。
もっと広まらないかな。

> 同期取りたい時
えっと、たとえば?
0860名前は開発中のものです。2005/04/12(火) 22:09:57ID:xQP2M/ZC
>>859
あぁ、めくれるって言うから、ひっくり返るアニメーションをイメージしてた。
一応、俺は >856 じゃないんで、そろそろ引き篭もることにするよ。
>857 の整形に関して言えば、なんつーかキモイ。
08618562005/04/12(火) 23:35:32ID:1RDeaCcw
神経衰弱を想像してみて下さい。
各レイヤにトランプ裏面を52枚用意して、
2つのカードをクリックしたら、そのイベントで
53,54枚目に表を描画する。

外れたら53,54だけクリア。
当たったら53,54とその下の裏面もクリア。

(クリアというのはlayoptで開放するのでも、
ダミーで透明1ドット画像表示するのでも良いかと思ってます)

それをやるならどうすればいいでしょう。

>>857
オブジェクト化するといけるとは思うのですが、
今までと呼び出しとかかわってきて改変ややこしそう…
やってみます。
0862名前は開発中のものです。2005/04/13(水) 01:17:05ID:UCsOBI91
とりあえず適当な神経衰弱を作ってみた

ソース
ttp://gamdev.org/up/img/2523.lzh
(コメント無いけど
08638562005/04/13(水) 15:27:06ID:21UU7UNL
クリッカブルマップで52カ所やるとめっさ重くなるんでしょうか。
しょっちゅう止まります。
やっぱりクラス管理に切り替えます。
0864名前は開発中のものです。2005/04/13(水) 19:39:57ID:qXOfog6z
>>862
バラけた感じが萌えるな
0865名前は開発中のものです。2005/04/14(木) 13:17:18ID:Sk+IVvj8
質問です。
画面上のキャラクターが一定のアニメーションを繰り返している間に
メッセージを表示することは可能ですか?
(キー入力待ちも含む)
その場合、swfやムービーは使わないとします。
0866名前は開発中のものです。2005/04/14(木) 15:34:06ID:Sk+IVvj8
連続での質問失礼します。
昔のavgなどでよく見られた、メッセージを表示しながら音を出すことができますか?
BGMではなく、文字が表示された時に出る音です。


0867名前は開発中のものです。2005/04/14(木) 16:23:11ID:adPoV49U
可能です
0868名前は開発中のものです。2005/04/14(木) 19:08:04ID:I/aeO0wg
おらも知りたい
それってKAGでできるんか?
0869名前は開発中のものです。2005/04/14(木) 19:31:57ID:E6LIBP3K
>>865
リファレンス嫁

>>866
1文字ごとにSE鳴らせば?w
もしくは適当にMessagelayer.tjsいじるか。
0870名前は開発中のものです。2005/04/14(木) 21:14:02ID:xj6iJh6X
文字が出るスピードとSEのスピードを計算して調節すりゃすむ話だろ。
0871名前は開発中のものです。2005/04/14(木) 21:51:56ID:Z/T/BaSV
あはは、ワロタ
0872名前は開発中のものです。2005/04/15(金) 00:51:03ID:Zi0RKoaI
>>869

リファレンスは読んだけど、全部は読んでいないよ。
アニメーションつうのがそれっぽなぁとは思ったが、とりあえず知っている人に聞いた方が早いからな。

一文字ごとにSE鳴らせばつうのは、、、そのくらいは自分でも思ったけどな
スクリプトが激しく醜い、激しく面倒。
で、TJSいじるのも自分で思って、メッセージレイヤ関係を除いたけどよくわらんから聞いた。
(オレは、java、basic、cobolあたり知っているからよく読めばいんだろうが、それが面倒)

ようは面倒だから聞いてしまったのさ、しかしまぁ自分でも厨だな、と思うよ。
自己解決できるようにがんばりまさ。
0873名前は開発中のものです。2005/04/15(金) 00:54:50ID:xe5y/hLb
よっしーみたいなのであまり言い訳しない方が
0874名前は開発中のものです。2005/04/15(金) 01:44:53ID:4hWPQ+U3
リリースキター
0875名前は開発中のものです。2005/04/16(土) 18:31:37ID:vD2z28XC
メッセージの表示など別の事をしながら、定期的な感覚で背景画像を操作するには、どうすればよいのでしょうか?
具体的には、周期的に背景を光らせる(稲光の演出)をしたいのですが・・・
OnTimerで実現させるのだろうとは思うのですが、以前見たその解説サイトが見つからなくて……

[iscript]\
var timer;
timer = new Timer(onTimer, '');
timer.interval = 2000; // 任意のタイミング
timer.enabled = true;
tf.time=0;

function onTimer()
  {
  〜〜〜
  };
[endscript]\

〜〜〜、の部分に画像処理の命令を入れるのかとは思うのですが、
済みませんがお教え頂けませんでしょうか?
0876名前は開発中のものです。2005/04/16(土) 21:26:48ID:wc9ugQ33
tf.time=0; は不要だと思うけど、それはともかく、えーと

kag.process(何とか) でいいんじゃないかな。
ただし時間内に終わらないと、やっかいなことになるかもしれない。
0877名前は開発中のものです。2005/04/17(日) 01:53:47ID:wB/qIwSs
kag.process(何とか) だと、背景を操作する度にテキスト表示などの本処理が止まってしまって無理です
0878名前は開発中のものです。2005/04/17(日) 02:14:27ID:VrRa183l
じゃあ自前でやるしかないな
サンプル書くから三十分待てや
0879名前は開発中のものです。2005/04/17(日) 02:21:28ID:+MHJqzMe
asdで稲光描くのじゃダメけ?
0880名前は開発中のものです。2005/04/17(日) 02:32:41ID:VrRa183l
こんな感じじゃないかな
コメント無いけど、何やってるか分かるよね
ttp://upld2.x0.com/data/upld1446.lzh
0881名前は開発中のものです。2005/04/17(日) 02:33:38ID:VrRa183l
あれ、asdでできるの?
それなら明らかに話は早いんだけど
0882名前は開発中のものです。2005/04/17(日) 03:06:10ID:wB/qIwSs
>>876-881
あらかじめ連結画像を用意しておく事で、asdでもおよそ思っていた動作が出来ました。
asdは前景レイヤに使うものだとばかり……
; -------------------------------------------------------------------------------
*go
@loadcell
@loop
;
@macro name=copyone
@copy dx=0 dy=0 sx=%x sy=0 sw=640 sh=480
@endmacro
;
*start
@copyone x=0
@wait time=3000
@copyone x=640
@wait time=50
;
@jump target=*start
; -------------------------------------------------------------------------------

ありがとうございました。
0883名前は開発中のものです。2005/04/17(日) 21:31:53ID:+MHJqzMe
あと、稲光のasdを再生するための専用の前景レイヤを
一枚用意してしまうというのも手ね。そーすると使いま
わしが効くのだ。
0884名前は開発中のものです。2005/04/18(月) 15:41:24ID:N8ahUp3v
ウインドウのどの座標がクリックされたかを知りたい時には
どうすればいいですか。

Window#onClick(x,y) のイベントからx,yを取り出して
タグで変数f.x f.yに代入して使いたいんです。

例えばウインドウ上のキャラをクリックしたら画像が変化するとか。
あ、Layer#onClickなのかな?

まあいずれにしても、イベントで得られた座標情報を取り出して
タグ内で使用できればなあと思っています。
08858662005/04/18(月) 18:30:15ID:y0H0c/Wg
自己解決しましたので、報告します。
結果的にはMessageLayer.tjsをいじったのですが
コンストラクタで、適当な名前で
test_se = new WaveSoundBuffer(owner);
こんなかんじでオブジェクト作って、wavファイルをopenしまして
1150行あたりの文字表示しているあたりに
if(test_se.status == "stop")
test_se.play();
こんなかんじで追加しました。
この場合、seが鳴っていなければ鳴らすってかんじになっています。
一応自分の意図した状態にはなりました。
さらに少しいじってon、offやwavファイル指定などつければ完成かな。
では失礼します。

08868662005/04/18(月) 18:37:41ID:y0H0c/Wg
先ほどの音再生部分ですが、stop状態でなくても音が再生されている場合
停止するのを待って再生されるようなので文字に追いつけなくなります。
つまり音が鳴っている間は、次の音は鳴りません。
以下のようにすると、文字の速度にあわせて音が鳴ります。
if(test_se.status == "play")
test_se.stop();
test_se.play();
08878662005/04/18(月) 18:56:49ID:y0H0c/Wg
KAG中で、鳴らす音を変更するときは以下のようにすると変更できます。
[iscript]
kag.fore.messages[0].test_se.open("hoge.WAV");
[endscript]
ただ、オープンしたメディアをクローズする方法がまだわかりません・・・
ならしたくない部分では音を消せばいいのでしょうが…
0888名前は開発中のものです。2005/04/18(月) 19:10:41ID:hqBdHV6h
>>884
kag.lastMouseDownXとYに最後にマウスがクリックされた
座標が入ってるけど、それじゃダメなの?
つーかそんな用途なら普通にクリッカブルマップ使えばいい
気がするが・・・
08898662005/04/18(月) 19:11:57ID:y0H0c/Wg
コレで良いのか判りませんが、一応以下のようにすると初期化されるため
音が消え、オープンされていない状態になります。
[iscript]
kag.fore.messages[0].test_se = new WaveSoundBuffer(kag);
[endscript]
0890名前は開発中のものです。2005/04/18(月) 22:39:21ID:V34d8B3h
はじめまして。
吉里吉里でのビデオ再生について質問させて下さい。

WIN98以降をターゲットにした場合、AVIコンテナのWMVは再生する事は出来るのでしょうか?

ここの過去ログやMicroSoftのHPを見てきて、WIN98SE以降ならメディアプレーヤー9
(SE以降対応)を入れれば、ビデオ再生出来るらしいという事は分かったのですが、
WIN98がどうなのか今一分かりませぬ。。。orz。

mpeg1が無難だという事は過去ログで見たのですが、出来れば画質にも拘りたいという
意見がサークル内で出まして、質問させていただきました。
0891名前は開発中のものです。2005/04/19(火) 01:08:49ID:mGzz7jOF
そう言う質問は本家でやった方がいいんじゃない
もう遅いけど…。

ちなみに俺から言えることは説明書嫁とか。
0892名前は開発中のものです。2005/04/19(火) 02:31:36ID:Mm0JrGcn
>>889
invalidate kag.fore.messages[0].test_se
とかの方が穏便だと思われ
08938902005/04/19(火) 03:08:36ID:JkpjtZTP
>>891さん
早いレスありがとうございますm(__)m。

本家のほうか2chのどちらに質問しようかは迷ったのですが、過去ログで似たような質問がHITした
こちらのほうに書き込ませていただきました。

ビデオ再生の項目については吉里吉里付属のリファレンスも読んだつもりだったのですが、
流してしまっていたのかもしれません。。。orz

吉里吉里のムービー再生はDirectShow依存らしいという事も分かりましたので、そちらのほうの
リファレンスも読んでみようと思います。

>>もう遅いけど…。
なるべく出来るものなら企画者の要望には応えたいと思っているので、どうしても分からなければ、
厚顔にも本家のほうにも質問するかもしれないです^^;。
08948842005/04/19(火) 10:17:06ID:6WS3iNcB
>>888
クリッカブルマップのルール部分(?)が何十個もあって、
しかもメッセージ部分をクリックしていざクリッカブルマップ!
って時には既にハング状態。
そこで座標を取って計算した方が手っ取り早いと思ったのです。

しかし、軽くなりハングしなくなったが新たな問題が…

「最後の値」を格納するのがkag.lastMouseDownX(Y)ですよね?
シーン移動やメッセージ送りをした直後に、その値は残っているはずで、
肝心の画面クリックの時に、自動的にその値が使われてしまうのです。

最初、使うべきシーンの前で初期化しようと
    [eval exp="kag.lastMouseDownX=-1"]\
とかやったのですがエラーが出ました。kagオブジェクトは操作できないんですね。

「座標を使うべきシーンに入った瞬間」
その直前のクリック座標情報は無視できる、出来れば-1などで初期化できる、
あるいはkag.lastMouseDownXを使わずにやる、
そんな方法はないでしょうか。


#もちろん数が少ないならクリッカブルマップでやりますけどねぇ…。
#85個もあると…
08958842005/04/19(火) 11:17:26ID:6WS3iNcB
あ、すいません
[eval exp="kag.lastMouseDownX=-1"]\
使えましたわ。
ちゃんと代入されてる。

自己解決すいません。
0896名前は開発中のものです。2005/04/19(火) 11:45:24ID:NvPtL+ez
うち別にルール部分がそんなにたくさんあってもそういう状況にはならないなあ
なんか間違ってるんじゃないの?
どう書いてるの?
0897名前は開発中のものです。2005/04/19(火) 12:58:33ID:eieBuGPZ
>>885
TJSのVMがGC積んで無かったなら恐ろしい事になるなぁおい。
0898名前は開発中のものです。2005/04/19(火) 17:39:36ID:Mm0JrGcn
まあ実際にはGCはあるので、大丈夫なんだけどね。

>>885
function finalize 内で invalidate しておいた方がいいとは思うよ。
08998852005/04/20(水) 00:29:39ID:h9ZmiOs0
>>897>>898
ですね、自分もなにかしらのクローズ処理が必要と思ったのですが
気がついたのは昨日寝る直前にリファレンスを読み直しているときでした。
0900名前は開発中のものです。2005/04/20(水) 07:46:01ID:cbMbSY9+
>>899
close() が無いって事はそれを意識しないで良い実装になってると考えて良いと思われ。
IOストリームのクローズは多分、ストレージが変更された時と finalize 時に実行されてる
と予測するのが妥当なので確実に閉じておきたいなら invalidate するのがまぁ正解。
以上を踏まえて MessageLayer に関数追加するならば、
var test_se; // = void
function setGlyphSE( storage ) {
( test_se = new WaveSoundBuffer() ).open( storage );
}
function resetGlyphSE() {
invalidate test_se; test_se = void;
}
function finalize() {
...略
invalidate test_se if( test_se !== void ); //追加
}
再生部分では test_se が void かどうかで実行判定を行えば良い。
if( test_se != void ) {
test_se.stop() if(test_se.status == "play");
test_se.play();
}
0901名前は開発中のものです。2005/04/20(水) 18:45:57ID:7aU5QFFz
本当に初心者の質問で申し訳ないのですが、
@link targetを使って
WEB上のhtmlページに飛ばすのはどうするのでしょうか orz
0902名前は開発中のものです。2005/04/20(水) 19:01:26ID:tx2+oCuC
人はおまえを初心者ではなく教えてクンと呼ぶ

マニュアルに一回でも目を通したか?
0903名前は開発中のものです。2005/04/20(水) 20:55:01ID:OaFpsddm
本当に教えてクンの質問で申し訳ないのですが、
@link targetを使って
WEB上のhtmlページに飛ばすのはどうするのでしょうか orz
0904名前は開発中のものです。2005/04/20(水) 21:09:46ID:PskgGfP9
>>901
|-`)ノ⌒[吉里吉里/KAGではじめるゲーム製作(工学社) P185〜]
0905名前は開発中のものです。2005/04/20(水) 21:11:23ID:GK7Lowme
目が節穴なお方が参られたようですね
0906名前は開発中のものです。2005/04/20(水) 21:39:16ID:OaFpsddm
>>904
高いよアホ
0907名前は開発中のものです。2005/04/20(水) 22:41:51ID:Kj9tQnLA
>>906
学校の図書館でリクエストすれ
レス数が900を超えています。1000を超えると表示できなくなるよ。