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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/02/03(木) 13:12:07ID:6MBIOEHD
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、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雑談質問スレ■その22
http://hibari.2ch.net/test/read.cgi/gamedev/1285897465/
0606名前は開発中のものです。2011/04/11(月) 02:32:55.83ID:+LJ/IDCI
クラスを作らずにfunctionの中で作ったレイヤを外部から使う事って可能でしょうか?
引数で渡せば可能なのですが、例えば画像を表示するだけの関数を作って、それをtimerで動かしたり透明度を弄ったりしようとしたら引数を受け渡せずに出来ませんでした。
単純にクラスを作れと言う意見は確かにそうなのですが、ちょっと気になって色々弄ってみたのですが素人に毛が生えた程度の能力じゃ駄目でした。
0607名前は開発中のものです。2011/04/11(月) 03:18:40.30ID:cbi6oYPm
>>605
MainWindow.tjs内をタグ名で検索。関数の使い方も分かってお得

>>606
意味不明なので>>602
0608名前は開発中のものです。2011/04/11(月) 10:08:46.89ID:+LJ/IDCI
function test_cg(){
var test_cg;
var test_opa = 0;
var timer;
test_cg = new Layer(kag,kag.fore.base);
kag.add(test_cg);
with(test_cg){
// 適当に画像表示
.opacity=test_opa;
.visible=true;}
timer=new Timer(this,"action");
timer.interval = 20;
timer.enabled=true;}
function action(){
global.test_cg.test_opa++;}

こう言うのを作って、test_opaをリアルタイムでtest_opa++みたいにしてじわっと表示させようとしたのですが、そもそもtimerが動いてないようでした。
classに纏めてやれば普通に動く事は分かってるのですが、こう言う剥き出し状態だとダメなのでしょうか?
あとたぶんglobal〜もこれだとたぶんエラー起きると思うのですが。
0609名前は開発中のものです。2011/04/11(月) 11:10:50.49ID:DIOJiFG7
test_cgとtimerを関数内で宣言すると、関数から出た途端に無効化されちゃう
.opacity=test_opa はただの値の代入で opacity=0 と一緒。Layerクラスにtest_opa変数が無いからエラーになっちゃう
関数名と変数名の重複はしない方が良いよ

var test_cg_layer;
var cg_timer;
function test_cg() {
test_cg_layer = new Layer(kag,kag.fore.base);
with(test_cg_layer) {
.opacity=0;
.visible=true;
}
cg_timer=new Timer(this,"test_cg_action");
cg_timer.interval = 20;
cg_timer.enabled=true;
}

function test_cg_action(){
test_cg.opacity++;
if(test_cg.opacity>=255) cg_timer.enabled=false;
}
0610名前は開発中のものです。2011/04/11(月) 11:50:20.18ID:+LJ/IDCI
変数を中で宣言したからダメだったのですね。
どうしてダメだったのかがわかりました。
ありがとうございました。
0611名前は開発中のものです。2011/04/11(月) 15:46:27.12ID:Jx6hYE2A
便乗で申し訳ないです
new Layerで作るオリジナルレイヤをforやwhile等でまとめて何枚も作る事って可能です?
数枚程度作るだけなら>>608みたいにtest_cgとかみたいに直接レイヤ名を書けばいいけど数十枚とかなるとさすがに無駄に長大になるだけだから変数の配列でcg_name='test_cg[0]';cg_name = new Layer(kag,kag.fore.base);みたいに書いてみたけどダメだった
0612名前は開発中のものです。2011/04/11(月) 16:26:47.22ID:fb5/NXfm
>>611
例えば、cg_nameという本に、いくら「これは箱です」って書き込んでも、箱に変化したりはしない。
「これは箱です」と書かれた本になるだけ。

シンプルに書くなら多分、for文中とかでこう。分かるとおもうけどいちおう、 i は変数ね。
test_cg[i] = new Layer(layer);
0613名前は開発中のものです。2011/04/11(月) 18:31:02.98ID:Jx6hYE2A
>>612
おぉ出来たっす!
こんな簡単な事が分からないって俺PGの才能無いなorz
ありがとです!
0614名前は開発中のものです。2011/04/12(火) 02:46:10.17ID:xogAiS3D
それは人から説明されないとわからない事か?
二十年も三十年も生きてきてそんな事もわからないなら
お前が今まで喰ってきた飯は全 部無駄だったという事だ
0615名前は開発中のものです。2011/04/12(火) 03:46:45.22ID:l8KfDsig
>>614
ここそういうスレじゃないんで、マ板でやってください
0616名前は開発中のものです。2011/04/12(火) 04:29:01.93ID:R/4ls9Qh
才能というより理解の問題ですね。コンピューターは、プログラマが指示した通りにしか動いてくれないので、よく理解してない内容を適当に書けば、よく分からない適当な動作をする物なのです。

上達を望むのなら、理解を深める努力をすると良いとおもいます。

まあ、本職のブログラマでも、プログラムを魔法の呪文と勘違いして、理解も出来てないようなコードを書き散らす輩は結構いるんですけどね。
0617名前は開発中のものです。2011/04/12(火) 10:16:27.55ID:3jSx4RM9
質問ですが、VBのlineのように任意の直線を引く事は可能でしょうか?
具体的には格闘ゲームの体力ゲージのように、数値をバーで表示したくて、その描画のために使おうと思っています
一通りマニュアルを検索に掛けてみましたが見つかりませんでした
0618名前は開発中のものです。2011/04/12(火) 11:39:13.79ID:zkCnac8r
>>617
100%状態のゲージを画像で用意しておいて、数値に応じて範囲を切り出すのが楽だと思う
0619名前は開発中のものです。2011/04/12(火) 13:34:37.41ID:3jSx4RM9
>>618
なるほど、その方法は頭にありませんでした
一度試してみたいと思います
ありがとうございました
0620名前は開発中のものです。2011/04/12(火) 20:14:19.07ID:bsva6djf
それにしても次のマルチプラットホームの奴ってTJSは使えるんだろうか?
使えないなら覚えるだけ無駄な気がする
0621名前は開発中のものです。2011/04/12(火) 20:26:15.16ID:Kh5wOsxY
それが出てくるまであと10年はかかるんじゃないか?
0622名前は開発中のものです。2011/04/12(火) 20:31:48.07ID:lSmD4aP5
>>620
まあそうだったと仮定しても、必要になったらまた憶えなおすわ
0623名前は開発中のものです。2011/04/12(火) 20:33:52.62ID:bsva6djf
せめてその事くらいは先に教えて欲しいな
ぶっちゃけ頭の中でいろんな言語が混在してしまってるから、はっと気づくと違う言語で書いてる時あるから覚えておくのは少ない方が助かる
0624名前は開発中のものです。2011/04/12(火) 20:35:40.29ID:Yh8yKC/s
>>623
いくつの言語覚えたか書いてみ。
0625名前は開発中のものです。2011/04/12(火) 22:49:20.43ID:A0Ek/Gn1
>>607
仕事が忙しく、お礼が遅くなりましたが、ありがとうございます。
私にとって最高の回答でした。
0626名前は開発中のものです。2011/04/13(水) 00:01:56.67ID:TwBx7pbA
むしろ格ゲーって大体は>>618の方法じゃないの
0627名前は開発中のものです。2011/04/13(水) 00:53:34.63ID:xweTT8AM
ちょっと質問
おまけモードを作ろうと配列で座標とか管理してたんだけど、そこに式中関数組み込みしようとしたら、
良く考えたら式中関数は呼ばれた時に

for(var i=0;i<10;i++)
{
button_[i] = new SystemButtonLayer(kag, pop_layer_tp_fore, function()
{
kag.se[1].play(%[storage : 'se_ok.wav']);
button_select = i;
}incontextof this);
with(button_[i]){
.fillRect(0, 0,kag.scWidth,kag.scHeight, 0x00000000);
.opacity=255;
.visible=true;
}
}

with(button_[0])
{
画像のそれぞれの設定
}

・・・・と書いたんだけど、グラフィックボタンを押したら直接飛ぶんじゃなくて、button_selectにそれぞれの数字(button[0]なら0と言う感じ)を入れて、後でそれを判定して飛ぶようにしたかったのだけど、
当然この形だと式中関数が実行されるとiが見つからずにエラーになるんだけど、これの対処方法ってどうすればいいんだろう?
一番良いのは、配列の添え字をそのまま数字として扱えれば理想なんだけど、そう言う事って可能かな?
式中関数を組み込む形で一気に配列で作ると、それぞれのボタンの違いを判断する方法が思いつかない・・・・・
0628名前は開発中のものです。2011/04/13(水) 01:35:09.63ID:90iHc6bV
その場合はちゃんとクラスつくったほうがええとは思うが、どうしても式中関数でしたいなら

function() {
global.kag.se[1].play(%[storage:'se_ok.wav']);
owner.button_select = i;
} incontextof %[ owner:this, i:i ]

こうすればいい。辞書をコンテキストにする場合は、
グローバルを自動的に検索してくれないからそれだけ注意な
0629名前は開発中のものです。2011/04/13(水) 01:50:23.73ID:xweTT8AM
>>628ありがとう。
これは思いつかない・・・・・勉強せねば
0630名前は開発中のものです。2011/04/13(水) 10:32:05.40ID:xweTT8AM
追質問申し訳無いです
>>628で式中関数の中で別の変数を定義する場合

function() {
global.kag.se[1].play(%[storage:'se_ok.wav']);
test_flag=true;
owner.button_select = i;
} incontextof %[ owner:this, i:i ]

このtest_flagを単にclassの外に定義してglobal.kag.test_flag=true;と書けば良いだけなんだけど、
classの中で定義した場合はどう書くんだろう? thisは使えないし、ownerもダメだし、
newで宣誓したオブジェクト名(global.xxxxx.test_flag=true;)でやるか、
timerなどで.button_selectを監視すると言うのも手だと思うけど、単純に上手く書けそうな気がするけど無理なのかな?
ちなみにclassの外に出来るだけ定義したくないのは、万が一変数が被るのが嫌なだけだから、絶対に被らない変数にしてしまうと言うのも手だと思うけど、それだと逆にスクリプト中で見にくいかなと。
0631名前は開発中のものです。2011/04/13(水) 14:17:38.83ID:yEG29UwW
言ってることが単に「クラスに静的変数が欲しい」って話なら

class Hoge {
function Hoge() {}
};

Hoge.staticVarName = 1;

とかで普通に動くよ

ただし、該当クラス中だと同名コンストラクタがあって名前かぶってるから、アクセスするときは
global.Hoge.name とかする必要がある。
0632名前は開発中のものです。2011/04/13(水) 14:59:40.40ID:38Z5Wtgk
ごめん、>>630の説明が悪かった。
//*************************
var test_flag; //←問題はこれ※※
class Save_base()
var save_layer;
var button_ = [];
function Save_base()
save_layer = new Layer(kag, kag.fore.base);
kag.add(save_layer);
with(save_layer){// ここでセーブエリアのベースを定義
.visible=true;}
for(var i=0;i<10;i++){
button_[i] = new SystemButtonLayer(kag, save_layer, function(){
global.kag.se[1].play(%[storage : 'se_ok.wav']);
global.test_flag = false; //←問題はこれ※※
owner.button_ = i; //ボタンの種類
}incontextof %[ owner:this, i:i ]);
with(button0_fore[i]){
.fillRect(0, 0,kag.scWidth,kag.scHeight, 0x00000000);
.opacity=255;//ここで画像の共通部分定義
}}
//以下端折る
}
//*************************
ここで問題なのは、>>628が事前に教えてくれたように、グローバルを自動で検索しなくなってしまってる事で、
こうしてclassの外にtest_flagを定義するとちゃんとglobal.test_flag = false;でエラーが出ないんだけど、var test_flag;をclassの中に入れてglobal.Save_base.test_flag = false;としてもエラーが起きる。
kag.addPlugin(global.test_base = new Save_base());として、global.test_base.test_flagと書き換えると上手く動くけどそれじゃ複製出来ないし、色々試したけどダメだった。
万が一の事故が怖いからvar test_flag;をclassの中に入れて、式中関数が上手く動くように出来ないんだろうか?と言う質問。
0633名前は開発中のものです。2011/04/13(水) 15:52:36.07ID:yEG29UwW
んー、普通に global.Hoge.test_flag = false; で大丈夫なはずだけどな。
Hoge 定義前によんでるとか、代入じゃなくて参照しようとしてるとか、そういうことはないかね
0634名前は開発中のものです。2011/04/13(水) 16:35:15.25ID:38Z5Wtgk
うーーーーん}incontextof this);ならvar test_flag;をclassの中に入れても式中関数中のtest_flagが普通に機能してるから定義前とか代入とかでは無いはずなんだけど、
}incontextof %[ owner:this, i:i ]);だと、当然thisを付けてもダメだし、global.Save_base.test_flag=false;でうまくいかない。
0635名前は開発中のものです。2011/04/13(水) 16:42:47.57ID:38Z5Wtgk
追記
var test_flag; をclassの中に入れた状態で、
}incontextof this);だと、this..test_flag=false;は機能してるけど、global.Save_base.test_flag=false;はエラーが出るぽい
何か間違ってるのかな?
0636名前は開発中のものです。2011/04/14(木) 01:20:23.42ID:Cc6YtxAt
式中関数のthisってTJSだとレキシカルじゃないからouterのコンテキスト指すんじゃないの?
んでTJSはネスト関数は全部globalにフレーム作られるからそれをincontextof thisすればカレントはglobalじゃないの?

ていうか
>class Save_base()
>function Save_base()
は通らないんじゃないの?
0637名前は開発中のものです。2011/04/14(木) 01:54:55.46ID:ovTjvrOu
>>636

}incontextof %[ owner:this, i:i ]);を残したままにしたいんだけど、その状態だとglobal使えないからどうにも無理なんだね。
素直にクラスの外に出すか。
0638名前は開発中のものです。2011/04/14(木) 04:08:25.05ID:IE+L0K+f
テーブルをコンテキストにしたら自動参照されなくなるだけで、
global はいついかなるときでも使えるわけだが……
なんか全然別の問題ではまってるんじゃね?

エラー出るならなんてエラーでるのかも書こうな
0639名前は開発中のものです。2011/04/14(木) 13:01:34.47ID:ovTjvrOu
根本的な事を理解出来てないぽい
コンテキストにした場合、グローバルで指定するのはnewで作成したオブジェクト名じゃないとダメ?
それだと仮に複数作る場合とかどうやっても元を書き換えないといけないから大変だと思って、
どうにか元のクラス名で解決したかったんだけど

変数をクラスの外に出すか、コンテキストの中のグローバル指定をnewで作成したオブジェクトで指定するかの二択なのかな?
あとglobal.Save_base.test_flag=falseも、エラーメッセージは出ないんだけど、コンテキストの外からdm(test_flag)すると値が変わって無い
エラーが出るならわかるんだけど、なぜエラーでないんだろう?
0640名前は開発中のものです。2011/04/14(木) 14:17:57.30ID:drLWJLvS
もしかして「クラスの中にいれる」って

class Save_base {
var test_flag;
}

ってやってるの?

それは単にメンバ変数だから、 Save_base を new したオブジェクトからしか参照できるわけが無いんだが……
前出てた構造だと owner が Save_base のオブジェクトなんだろ?
owner.test_flag でアクセスできるだろうて。

そもそもその test_flag で何をやりたいのか書きなさい。どう書けば良いか教えてあげるから。
0641名前は開発中のものです。2011/04/14(木) 14:46:59.22ID:ovTjvrOu
あっ出来た。ownerだけでよかったんだ・・・・・理解力なさ杉
global.Save_base.test_flagでエラーが出ないからこれで正しくて何かが間違ってるんだろとなんで動かないのかと全然見当外れのところを弄ってた
ごめんなさい、長々付き合ってくれてありがとう
あとはなんとか出来そう
0642名前は開発中のものです。2011/04/14(木) 16:13:47.09ID:vxf4RKs/
【ゲーム制作】サスペンスギャルゲー 『フクロマンス』 第二章 【スタッフ募集】
http://ex14.vip2ch.com/test/read.cgi/news4gep/1302080425/
0643名前は開発中のものです。2011/04/16(土) 15:25:51.71ID:9GHZxeHO
吉里吉里のフォント変換でjis2004対応フォントが選べないのですが対応してないのでしょうか?
0644名前は開発中のものです。2011/04/16(土) 16:35:36.17ID:KVj4xPQu
レンダリング済フォントデータで画面一杯の文字、つまりfont size580
を作ろうとすると死ぬ。容量50Mとかになる。

次のバージョンはfont sizeを変更できるとイイな・・・
0645名前は開発中のものです。2011/04/16(土) 16:45:03.64ID:sMrQgTk6
そんなの画像で持てw
0646名前は開発中のものです。2011/04/16(土) 17:35:44.70ID:QRmFBkmG
そういえばフクロマンスって荒らし報告するんだっけ?
0647名前は開発中のものです。2011/04/16(土) 17:39:45.34ID:9qY3KOzG
>>644
何に使うんだよそんなでかいフォントw
0648名前は開発中のものです。2011/04/16(土) 17:47:56.81ID:dcXx76//
ただのビットマップでもった方が10倍以上軽いんじゃないか?
0649名前は開発中のものです。2011/04/16(土) 19:19:10.10ID:uUFTiAga
シナリオはこんな感じ
http://www1.axfc.net/uploader/Ne/so/106505.zip
0650名前は開発中のものです。2011/04/16(土) 20:29:02.35ID:dcXx76//
そういやさ、虹プラグインとか太陽光プラグインとかないなぁとか
思ったんだけどこれって普通シェーダー使うよな。
吉里吉里ェ。CPU万歳!
0651名前は開発中のものです。2011/04/16(土) 22:55:31.02ID:1renLlD1
虹は使いどころが無い
太陽光は表現手法が山ほどある
動画で作るが吉
0652名前は開発中のものです。2011/04/17(日) 16:51:55.47ID:cX6qZw6G
質問と言うか、音楽関係はまるで分からないので具体例を教えて欲しいです。
wavにkrkrltで適当にlabelを作ってsliファイルを保存で作ったとします。
そのラベルを通過したらseを鳴らそうと考えたのですが、全くどう書けば良いのかもわかりません。
sliファイルが吉里吉里専用のファイル形式だと今の今まで思ってた程の音楽シロートですみません。

#2.00
# Sound Loop Information (utf-8)
# Generated by WaveLoopManager.cpp
Label { Position=11904; Name='test; }

sliファイルがこんな感じで、適当に音を鳴らして(wavとsliのファイルネームは合わせている)

kag.bgm.buf1.open('music_test.wav');
kag.bgm.buf1.play();

kag.onLabel function(){
if (kag.bgm.buf1.onlabel(test))kag.se[1].play(%[storage : 'beep.wav']
}incontextof kag;

この段階ですでにエラーが出てしまいます。
たぶんぜんぜん間違ってると思うのですが全くわかりません。
単純にラベル通過したら音が鳴るようにしたかっただけなのですけど、どう書けばいいのでしょうか?
0653名前は開発中のものです。2011/04/17(日) 22:27:47.27ID:sadQWVqj
>>652
間違いと勘違いが満載のコードなのか
俺の知らないtjsの記述法がこんなにあったのか!なのかマジで分からない半端な私

kag.bgmのクラスの「下」に、onlabelイベントを定義する必要があるんだけど
ぶっちゃけBGM.tjsの該当クラスの中に
function onLabel(ラベル名){略}を放り込むのが楽ちんです

sliファイルは別に問題ないと思う
0654名前は開発中のものです。2011/04/17(日) 22:36:44.91ID:sadQWVqj
適当な例:

function onLabel(label)
{
kag.se[1].play(%[storage : 'beep.wav'] ) if (label=='beep')
}
0655名前は開発中のものです。2011/04/17(日) 23:42:37.86ID:cX6qZw6G
>>654
ありがとうございます。
ただVUの問題とかもあるんで、可能なら基本のtjsは弄りたくないんですが、
その場合の方法が全くわからなくて……
それともoverrideでやるしか無いのでしょうか。
0656名前は開発中のものです。2011/04/18(月) 00:16:22.76ID:SKBXW2nH
バージョンの管理ができなくなる程の大改造じゃないし
KAGに依存しないサウンドシステムを作るんだ!ってわけでもなければ
お手軽な解法でもいいんじゃね
それよりか、そこまでやりたきゃ
ソースを読み込んでKAGシステムの構造を理解することが先な気がするよ
0657名前は開発中のものです。2011/04/18(月) 00:28:28.33ID:/da/53Gj
そっちが先か……
他の部分ならともかく、音楽は苦手意識でずっと敬遠してたから根本が分かってなくて謎スクリプト……
元々TJSも中途半端なとこにドツボ状態。
とりあえずもう少しググレカスしときます。
0658名前は開発中のものです。2011/04/18(月) 01:35:30.31ID:uuHn7kKq
まだ改善されていないんで何度も言わせてもらうが
パッド使用オンがデフォルトになっているのをオフにしてもらえませんかね?
てか、吉里吉里システムのデフォルトがオンになってるの?
もしそうなら吉里吉里製作者の方、どうかオフがデフォルトにしてください
キーカスタマイズもついてないくせにオンにする意味があるんでしょうか?
よろしくお願いします
0659名前は開発中のものです。2011/04/18(月) 01:40:04.59ID:H0Kf0v5c
デフォルトOFFになってると「パッドで動かないのでONにしてください」という文句が来るんだZE
0660名前は開発中のものです。2011/04/18(月) 01:44:57.19ID:uuHn7kKq
まさか、そりゃないでしょ
てか、設定画面でオンオフできないものなの?
バイナリを書き換えたりしてるのか?
0661名前は開発中のものです。2011/04/18(月) 01:46:06.30ID:VdBuMe/y
自分でオフにすりゃいいだろ
0662名前は開発中のものです。2011/04/18(月) 01:46:52.62ID:H0Kf0v5c
そのまさかがあってだね……

設定自体は吉里吉里設定からできるよん
0663名前は開発中のものです。2011/04/18(月) 01:52:09.43ID:uuHn7kKq
オフの仕方は知っているんだけどね
そうか、オンにしてくれって要望があるのか
確かにオフにしてくれって声は少ないだろうな
そういう奴はそもそもパッド使ってないんだし
俺みたいにマウスエミュレートして使っているような奴は少数派か
0664名前は開発中のものです。2011/04/18(月) 01:57:08.79ID:H0Kf0v5c
ちなみに「選択肢でカーソルが止まらないのでどうにかしてくれ」もたまにきます。

返答は「パッドの上に本かなにかのってませんか?」で100%正解
0665名前は開発中のものです。2011/04/18(月) 02:33:58.55ID:PuHrGRE7
そういうサポートを見るにつけ、自分は想像力の欠如した人間ではありたくないと強く思うね
0666名前は開発中のものです。2011/04/18(月) 14:48:52.38ID:asK1xl+I
>>658 コントローラをつないだママにしてると、赤LEDが勝手に光ってイヤだってコト?
0667名前は開発中のものです。2011/04/18(月) 18:22:39.17ID:uuHn7kKq
マウスエミュレートして使ってるから、PAD機能がオンになってると邪魔になる
0668名前は開発中のものです。2011/04/18(月) 18:25:39.70ID:asK1xl+I
前から欲しいと思ってた機能だな。
もしキーボードも割り当てできるなら俺も使いたい。
0669名前は開発中のものです。2011/04/18(月) 18:35:24.21ID:uuHn7kKq
JoyToKey使えばできるよ

これやればエロゲしながらデスクトップで何か作業するときも
いちいちマウスに持ち替えなくてパッドだけでできるし
PCゲームもそのままできるし楽
0670名前は開発中のものです。2011/04/18(月) 18:39:41.24ID:asK1xl+I
ボタンを押すとエロゲの方も読み進んじゃうってコトだよね?
ソレはそっちの責任じゃないの?
エロゲアプリにフォーカスいってるから反応しちゃうんでしょ
0671名前は開発中のものです。2011/04/18(月) 18:46:26.20ID:uuHn7kKq
うん、こっちの都合だね
ただ、何度も言うけど、キーカスタマイズもできない機能を
オンにするはどうなんだって話
0672名前は開発中のものです。2011/04/18(月) 20:18:38.59ID:DYZujjre
初歩的な質問なのかも知れませんが、TJSにはKAGで言う所の
エンティティの機能と同じ働きをしてくれるものはありませんか?
例えば、
[eval exp="f.n='one'"]
[eval exp="f.hairetu=[]"]
[eval exp="f.hairetu[0]='zero'"]
[eval exp="f.hairetu[1]='two'"]
[iscript]
f.hairetu.insert(1, "&f.n");
[endscript]

f.hairetu[1]にf.nに入れてあった文字列「one」が入るようにしたいのですが
どこを修正すればよいのでしょうか?
0673名前は開発中のものです。2011/04/18(月) 21:24:23.36ID:uuHn7kKq
f.hairetu[1]=f.nじゃないの?
0674名前は開発中のものです。2011/04/18(月) 21:38:01.19ID:DYZujjre
>>658 確かに、このスクリプトのままだとそのようになってしまうのです。
ですが、f.nに入れてあった文字列「one」がf.hairetu[1]に入るようにしたいので
TJSでエンティティと同じ機能をしてくれるものをおたずねいたしました。
何か方法はございませんか?
0675名前は開発中のものです。2011/04/18(月) 21:43:21.98ID:uuHn7kKq
言っている意味が解らん
0676名前は開発中のものです。2011/04/18(月) 21:55:13.68ID:/da/53Gj
insertだから配列の間に割り込ませるメソッドだな
試してないからもっと上手い方法あると思うけど、みっともなくてよければとりあえず適当な数値でinsertして、それからf.hairetu[1]=f.nでもいいんじゃないの?
根本的な解決じゃないけど
0677名前は開発中のものです。2011/04/18(月) 22:20:26.61ID:clM4GZax
いや、だから iscript の中なら f.n そのままかけばいいんだって……

一応エンティティ相当の処理は Scripts.eval("f.n") だが無駄でしかない
0678名前は開発中のものです。2011/04/18(月) 22:48:56.45ID:DYZujjre
>>675 具体的に言いますと、
アイテム覧を配列で作ったら楽なんじゃね?

TJSのaddとかinsertとかremoveメソッドがあれば
簡単にアイテムを追加したり削除したりできるんじゃね?

エンティティ使えないとかどういうことなの

どこにTJSでエンティティ的なの使う方法あるんだ?/(^o^)\←今ココ
という状態でした。

>>676 >>677 ご意見、まことにありがとうございました。

ご指摘により「"」を消しましたらうまくいきました。
これで作業を進めることができます。本当にありがとうございました。
0679名前は開発中のものです。2011/04/19(火) 18:18:36.31ID:xFYJTj4H
ZOOMプラグインでmessageレイヤやるとevalがどうとかいうエラーがでるな・・・
0680名前は開発中のものです。2011/04/19(火) 22:58:15.29ID:WVy8Hj9D
質問です。TJSの変数(var で宣言する変数?)と、
KAGの変数(f. の変数?)は違うものでしょうか。違うとしたら、
双方の間で内容を受け渡すには、どうすればいいでしょうか?

TJSの変数をシナリオ中に表示しようと思ったのですが、
embタグで少し試してみたところ、上手くいきませんでした。
0681名前は開発中のものです。2011/04/19(火) 23:17:50.25ID:rdNoBpHd
「f」や「tf」や「sf」などは、TJSの立場でいえば辞書配列なのですよ

たとえば、KAGで「hoge という変数」を「f.hoge」とかいたり
「perori という一時変数」を「tf.perori」とかいたりするけれど
これらのTJSとしての実態は「fというオブジェクトのhogeというメンバ」、
「tfというオブジェクトのperoriというメンバ」ということになる

こんな感じかと ※走らせてないけど

; kagで値を設定
@eval exp="f.hoge = 100"
@eval exp="x = 200"
@iscript
//TJSで読み取り
System.inform(f.hoge); // 100
System.inform(x); // 200
//TJSで値を設定
f.hoge = 600;
x = 700;
@endscript
;kagで読み取り
@emb exp="f.hoge" ==これは600になるはず==
@emb exp="x" ==これは700になるはず==

ただしf.で始まるKAGの「変数」と違うのでセーブ・ロードなどのときに
自動で復元されたりはしないから注意が必要
0682名前は開発中のものです。2011/04/19(火) 23:51:45.70ID:WVy8Hj9D
>>681
ご回答ありがとうございます。

「メンバ "x" が見つかりません」というエラーが出たのですが、
xが含まれる部分をコメントアウトしたら動きました。

動作とソースを拝見して、わたしの勘違いが分かりました。
「@emb」というのはKAGのタグで、
TJS(@iscript中)では使えない、ということでしょうか。

TJS側で、「@emb」のように、
変数の内容をメッセージウィンドウに
直接表示することはできるでしょうか?

というのも、配列の文字列を表示したいのですが、
ループさせる都合で、なるべくTJS側だけで処理したいのです。
0683名前は開発中のものです。2011/04/20(水) 00:38:19.43ID:2b4/+GV8
kag.current.processCh(変数);
06846802011/04/20(水) 00:54:26.08ID:32C1w/9z
>>683
できました! ありがとうございました。

681さんも丁寧にありがとうございました。
違いを教えて頂いた部分を勉強します。
0685名前は開発中のものです。2011/04/20(水) 02:04:47.83ID:JTPJJ3te
processCh()直に使うのはどうなんだ。
0686名前は開発中のものです。2011/04/20(水) 10:45:33.03ID:HI0LUpZW
参考書等で比較的processCh()を使ってると思うけど他にもっと良い方法ある?
俺もprocessCh()直に使ってる。
0687名前は開発中のものです。2011/04/20(水) 11:08:45.87ID:Gvqw+XRd
質問をさせてください。
吉里吉里初心者です。
ポップアップでウェブページ表示する方法はあるでしょうか
ありましたら教えていただけると嬉しいです。
0688名前は開発中のものです。2011/04/20(水) 11:30:46.70ID:1VbKOOJ9
>>687
初心者を脱出するために「吉里吉里 ブラウザを起動」でググるのだ

なお「(クリックすると)ゲームとは別にブラウザが開きます」等の注釈を表示すると怪しくないぞ
0689名前は開発中のものです。2011/04/20(水) 15:48:44.39ID:Gvqw+XRd
>>688
ありがとうございます
可能ではあるのですね。
ぐぐる先生に聞いたりはしていたのですが
思うような結果が得られず困ってました。
クリッカブルにてクリックしたら飛ぶようにしてみたいので
もう少し悩んでみます。
0690名前は開発中のものです。2011/04/20(水) 15:58:59.98ID:Hj4hpakw
単純にクリックしたらブラウザを開いて飛ぶようにしたいだけ?
System.shellExecute('http://www.なんちゃらかんちゃら')
aboutにサンプルなかったっけか?
0691名前は開発中のものです。2011/04/20(水) 23:53:28.66ID:A6RXSKaP
TJSからマクロを使いたいのですが、何か方法はありますか?
0692名前は開発中のものです。2011/04/21(木) 00:02:56.78ID:9FomB+lB
>>691
>>174
0693名前は開発中のものです。2011/04/21(木) 00:37:22.61ID:kaPWApe2
うわなにこの書き方きめぇできたサンクス
0694名前は開発中のものです。2011/04/21(木) 01:29:52.76ID:UwBVTgL1
>>689
吉里吉里そのものやクリッカブルマップの使い方に慣れてないのかな

System.shellExecute〜はTJS式であるわけで
.maファイルにはTJS式を扱うexp属性つーのがある、というわけ
KAGリファレンス読んでね

クリッカブルマップでブラウザ開かせるのはやっぱ怪しげであるが
サポートページを開かせたいが、テキストでリンクするのはカッコワルイってのかな
0695名前は開発中のものです。2011/04/21(木) 02:06:11.61ID:YL+5ZBCw
@iscript
if(a == 0){
//中止処理
}
//処理
@endscript

中止処理の部分で、以降の処理を飛ばして、
iscriptを抜けたいのですが、
「break」や「@endscript」に相当する命令を教えてください。
0696名前は開発中のものです。2011/04/21(木) 02:07:22.23ID:3MQW2n0o
>>695
function にして途中で return
0697名前は開発中のものです。2011/04/21(木) 02:22:06.95ID:YL+5ZBCw
>>696
なるほど、関数にすればいいんですね。ありがとうございました。
0698名前は開発中のものです。2011/04/21(木) 02:24:08.37ID:9FomB+lB
単純にこれじゃだめなの
@iscript
if (a == 0) {
// 中止処理
} else {
// 処理
}
@endscript
0699名前は開発中のものです。2011/04/21(木) 02:38:02.87ID:YL+5ZBCw
>>698
なるほど、大きいelseブロックで、
残りを包む方法もあるんですね。ありがとうございます。
0700名前は開発中のものです。2011/04/21(木) 18:37:09.91ID:kaPWApe2
レンダリングした文字を大きく描画できる方法はありますか?
operateStretchやZOOMタグを使ってみましたが、どうもうまくいかないようです。
0701名前は開発中のものです。2011/04/21(木) 20:13:10.53ID:o9kvRaIu
Layer::streatchCopy()は?
0702名前は開発中のものです。2011/04/21(木) 23:27:50.06ID:rs+lHwRa
>>686
直に使うとコンダクタのコールバックとonTag()とか一切合切を無視するからコンダクタのpendingsにshiftした方がいいんだけどoffer関数とか無しにハードコーディングしてるからそこら辺は自前でやらないといけない。
まあ、並列に実行してるわけじゃないからここらへんが影響する場合は少ないかも。
システム寄りの事してくだらんバグに悩みたくないならやめといたほうが精神衛生上は良い。
07037002011/04/22(金) 19:03:16.07ID:S+J06Aa/
すみませんできました。KAGの方で一行はさむなどで時間をかせげばできるようです。
0704名前は開発中のものです。2011/04/22(金) 21:05:14.85ID:crbIjZPp
時間じゃなくてキューに突っ込まれてるだけで待ち状態になってるんじゃないの?
0705名前は開発中のものです。2011/04/23(土) 04:42:13.92ID:mxXfEWCd
メッセージウィンドウに表示している文字の行数、
カレントポジションを取得する方法はありますか?


あいうえお
@iscript
何かの命令 → 2行目という値を得られる
@endscript
かきくけこ
■ このスレッドは過去ログ倉庫に格納されています