■吉里吉里/KAG/TJS雑談質問スレ■その23
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2011/02/03(木) 13:12:07ID:6MBIOEHD自作ゲームの進行状況や製作ツールについての話、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/
0167名前は開発中のものです。
2011/02/15(火) 14:54:37ID:ohISBHHz「選択肢を選んだ」という変数で分岐させなさい
0168名前は開発中のものです。
2011/02/15(火) 14:55:28ID:FQniGo0m[link target=*select2 cond=f.flag[2]==0]選択肢2[endlink][r]
[link target=*select3 cond=f.flag[3]==0]選択肢3[endlink][r]
*select1
[eval exp="f.flag[1]=1"]
*select2
[eval exp="f.flag[2]=1"]
0169名前は開発中のものです。
2011/02/15(火) 14:57:22ID:0V8l3OVm情報が少なすぎて何ともいえないけど、選択肢を出すタグ群をif文で制御して、
その選択肢に飛んだ場合、if文の条件が否定される様にするのが一番簡単かと思う。
イメージとしてはこんな感じ
*ここから
@if exp="tf.sentaku1==void"
<選択肢1を出すマクロなりタグ>
@endif
@if exp="tf.sentaku2==void"
<選択肢2を出すマクロなりタグ>
@endif
*sentaku1
<飛び先>
@eval exp="tf.sentaku1=1"
<“*ここから”に戻るマクロなりタグ>
[s]
この方法で出なくは出来るけど、表示上はおいしくない。
出さない選択肢の部分を灰色にするとか、消すとかによって
色々処理を追加する必要があるとは思う。
0170名前は開発中のものです。
2011/02/15(火) 15:22:59ID:OjWV4otJ>>168さん
>>169さん
素早い返答本当にありがとうございました。
教えて頂いたことで試行錯誤していきたいと思います。
ありがとうございました。
0171名前は開発中のものです。
2011/02/15(火) 16:14:10ID:eoTU6IqZconducterの配列に収納されてるみたいだけど上手い方法が見つからない。
出来たところで、全部のタグに対応するわけじゃないけど。。。。
0172名前は開発中のものです。
2011/02/15(火) 16:21:50ID:ubsjfjaEhttp://ex14.vip2ch.com/test/read.cgi/news4gep/1277294113/
0173名前は開発中のものです。
2011/02/15(火) 16:34:33ID:mADjNJ6BマクロをTJS……って具体的にどういう役割を想定してるの?
1. 今現在TJSで何かスクリプトを書いていて、その中でKAGのマクロ/タグを機能させたい
2. 今組んでいるマクロの中でTJSスクリプトを使いたい(evalタグ毎度毎度打ち込むのがめんどい)
3. その他
とか、一つの文面でいくらかの解釈が有るんだが……
0174名前は開発中のものです。
2011/02/15(火) 16:40:40ID:0BpiwOhd↓の759,760,767
ttp://bbs.bokunatu.com/test/read.cgi/krkr/1195603475/
0175名前は開発中のものです。
2011/02/15(火) 17:19:10ID:OjWV4otJ本当にありがとうございました。
0176名前は開発中のものです。
2011/02/15(火) 17:41:23ID:eoTU6IqZ特に想定は無いんだけど時々iscriptでtjsパート書いたりしてるとこっちで書くよりマクロで組んで呼び出した方が処理スピードはともかく楽に書けるよなとか思う時があったりするけどそのたびにendscriptして呼び出して戻るとか格好悪いなと。
あと全体をTJSで組んでると、movie関係とか思ったよりTJSで組むのが面倒な場合があったりするからそんな時に楽かなと。
マクロを作っておいて呼び出せば、複雑なタグ群でも一行で済んじゃうから。
概ね楽するための方法として。
マクロの方がバグ見つけるの楽だしね。
>>174
なんか使えそうな感じのレスだね。
ちょっと詳しく読んでみる。
0177名前は開発中のものです。
2011/02/15(火) 18:09:42ID:FkfXkijB本末転倒やね
TJSを使う時は必ず「タグを作成する」という形で行うようにして、iscript はスクリプト中では使わない、ってほうが結果的には奇麗になると思うよ
0178名前は開発中のものです。
2011/02/15(火) 18:41:03ID:eoTU6IqZ実際そうだと思う。
たまーに急ぎの時とか、TJSで書くよりタグで書いた方が早いんだけど、でもここは絶対TJSじゃないと無理だしまあいいや、とりあえずendscriptして外に出して・・・とかやったりしちゃうのよね。
マクロの中身が百行とかなるとさすがにそれを一々TJSで同じ事やらせようとするときつい。。。。
タグは拡張性がTJSより低い代わりに、簡略化されてて楽に扱えると言うメリットはやっぱり捨てきれない。
俺ってダメダメ。
0179168
2011/02/15(火) 18:45:01ID:FQniGo0m; 例: 複数の選択肢の中から2つ選ぶと次に進むという構成で、一度選んだ選択肢は再度選べないようにする
@wait time=200
*start|スタート
[cm]
@eval exp="tf.flags = [], tf.flags[1] = 0, tf.flags[2] = 0, tf.flags[3] = 0, tf.cnt = 0"
*bunki
[cm]
[if exp="2 <= tf.cnt"]選択肢が[emb exp="tf.cnt"]回選ばれました[l][r][jump target=*start][endif]
[if exp="tf.flags[1]==0"][link target=*select1]選択肢1[endlink][r][endif]
[if exp="tf.flags[2]==0"][link target=*select2]選択肢2[endlink][r][endif]
[if exp="tf.flags[3]==0"][link target=*select3]選択肢3[endlink][r][endif]
[s]
*select1
[cm]
選択肢1が選ばれました[l][r]
[eval exp="tf.flags[1]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
*select2
[cm]
選択肢2が選ばれました[l][r]
[eval exp="tf.flags[2]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
*select3
[cm]
選択肢3が選ばれました[l][r]
[eval exp="tf.flags[3]=1, tf.cnt=tf.cnt+1"]
[jump target=*bunki]
0180名前は開発中のものです。
2011/02/15(火) 19:13:51ID:eoTU6IqZ一つ目と二つ目のメッセージの最後にカウンターかなにかでtf.count++とかしておいて、戻った先で選択肢の前に if(tf.cout>=2)とかすればいい。
一度読んだ選択肢を表示させないのはそれもフラグで管理して>>168みたいにcondで制御すればいい。
0181名前は開発中のものです。
2011/02/15(火) 20:58:36ID:AE4Z+Hd8スクリプトなのに低レベルな制御文しかなかったり文字列処理やバッチ処理に弱かったりDeeタンはドMだよね。
0182名前は開発中のものです。
2011/02/16(水) 01:18:22ID:i43onDkY聞いたこと無いなぁ。本当?
0183名前は開発中のものです。
2011/02/16(水) 05:04:29ID:PFl5tPzr0184名前は開発中のものです。
2011/02/16(水) 09:50:39ID:wh0vq7x90185名前は開発中のものです。
2011/02/16(水) 10:36:39ID:fnJHfEYPhtml
0186名前は開発中のものです。
2011/02/16(水) 11:24:35ID:auVMvR/S電子工作が趣味だったりするみたいだし
吉里吉里のソースコード見てもやたらと低レベルな一行一行コードがダラダラと続く感じだし
0187名前は開発中のものです。
2011/02/16(水) 12:06:32ID:wjFNoLFyこやつ、狂いか
0188名前は開発中のものです。
2011/02/16(水) 12:49:26ID:ggf6fWY50189名前は開発中のものです。
2011/02/16(水) 13:28:04ID:RLCp7sg60190名前は開発中のものです。
2011/02/16(水) 13:31:55ID:+qpjQr/eせめて低級とかって言って欲しいところではある。
0191名前は開発中のものです。
2011/02/16(水) 13:55:57ID:i43onDkY0192名前は開発中のものです。
2011/02/16(水) 13:57:31ID:TPbyk8Lw0193186
2011/02/16(水) 14:27:49ID:auVMvR/Sすまんね
0194名前は開発中のものです。
2011/02/16(水) 14:56:29ID:PCyBhogH「低級」でググると言語関係のページが出てくる、くらいには差がある。
>>193
多少でも知ってる人間ならまず間違わずに読み取れる書き方だったとは思うけど、
この流れだとスクリプターには誤解されても仕方ない。実にやっかいな用語だ。
0195名前は開発中のものです。
2011/02/16(水) 15:05:12ID:rcQiOZtlところでそんなプログラマーさんたちにちょっと初歩過ぎる質問なんだけど、
上の方で紹介されてる
ttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/
のLayerExなんちゃら系をC++でコンパイルしようとしたんだけど何か足りなくてエラーが起きる
layerExImage/の中身とlayerEx/の中身とtp_stub.cppとtp_stub.hを1つのフォルダーに突っ込んで処理しようとしたけどコンパイルされない
dllをDLすれば早いけど、今後の勉強のために覚えようと思って試したんだけどうまくいかなかった
ほかに何が足りないんだろうか?
0196名前は開発中のものです。
2011/02/16(水) 15:26:58ID:JI5ci1t3まあ、だいたい想像はつくけど。ncbind とかが無いとかどーとかいわれたんだろ。
pluginフォルダから下は全部そのままチェックアウトしような。
必要なファイルは全部プロジェクトファイル中でパス指定されてるんだから勝手にコピーして動くわけがない。
0197名前は開発中のものです。
2011/02/16(水) 15:40:21ID:rcQiOZtlいくつかエラー吐き出したけど、tp_stub.cppとか無いとか言うエラーがあって、入ってるのになんでダメなんだ?と思ったけど
パスの指定がされてないって事なのかな
0198名前は開発中のものです。
2011/02/16(水) 15:57:42ID:JI5ci1t30199名前は開発中のものです。
2011/02/16(水) 18:34:38ID:rcQiOZtlでもちゃんとdllにするように設定したのにexeになってるorz
サイズも違う
もうちょっと勉強してみる
0200名前は開発中のものです。
2011/02/16(水) 23:58:32ID:i43onDkY0201名前は開発中のものです。
2011/02/17(木) 00:02:01ID:7ekoSIjIサイズがあからさまに違うし、拡張子をdllに変えてもうごかなかったorz
いくつか試したけど、Exrasterなんか倍くらいサイズ違った・・・・
0202名前は開発中のものです。
2011/02/17(木) 00:11:16ID:h1zSGavvkirikiri2以下エクスポートしてslnひらいてコンパイル押すだけだろうが
0203名前は開発中のものです。
2011/02/17(木) 00:26:47ID:i1eT1ONz・layerExフォルダ
I
・layerExImageフォルダ
I
・tp_stub.cpp
I
・tp_stub.cpp
BCC Developer>新規作成>プロジェクトで適当にプロジェクト名を作って。
出来たプロジェクトに上の4つをそのままドラッグで放り込んで一応デフォルトプロジェクトの編集でターゲットがdllにセットされてるのを確認してメイク。
これで一応exeが出来るんだけどdllに書き換えてもなぜか動かない
0204名前は開発中のものです。
2011/02/17(木) 00:46:22ID:D3vStg/X0205名前は開発中のものです。
2011/02/17(木) 00:51:48ID:i1eT1ONz本当に悪い、C++は触った事一切無くてチンプンカンプン。
0206名前は開発中のものです。
2011/02/17(木) 04:47:22ID:9WE+dCEV書籍などにはonMouseMove等は新しいウィンドウで動作させるサンプルはいくつかあるのですが、ゲーム上と言うかKag上ではどのように書けば良いのでしょうか?
例えば、サンプルに良くあるのですが、captionにどう反映させるのか方法がわかりません。
function action(ez){
if(ez.target == primaryLayer){
if(ez.type=="onMouseMove"){
mess1="マウスカーソルの位置:(" + ez.x + "),(" + ez.y + "),(" + ez.shift + ")";
caption =mess1;
}
else if(ez.type == "onMouseLeave"){
mess1="マウスカーソルはプライマリレイヤの外にあります";
caption = mess1;
}
}
}
これを反映させたいのです。
また同じようにこれをイベントハンドラで反映させるにはどうしたら良いのでしょうか?
0207名前は開発中のものです。
2011/02/17(木) 19:45:02ID:Hn8XXTzb結局ゲームとして何をやりたいのか?
サンプルとやらを見せられて、余計混乱しているとお見受けします
スマートじゃないけど、MainWindow.tjsの中に直接
function onMouseMove(x, y, shift)を記述、挿入してはいかが
x,yにマウスカーソルの位置が入ってくるから
リファレンスのWindowクラス参考ね
0208名前は開発中のものです。
2011/02/17(木) 20:43:02ID:9WE+dCEVだいぶ不要と思う所を削りましたが、サンプルとかだと書籍とかネットとかだとだいたいこんな感じに書かれてまして
class mywin extends Window{
var timer;
function mywin(){
super.Window();
setInnerSize(800, 600);
add(new Layer (this,null));
with(primaryLayer){
.loadImages("双子N_02A.bmp");
.setSize(innerWidth,innerHeight);}
visible=true;}
function finalize(){super.finalize();}
function action(ev){
if(ev.target == primaryLayer&&ev.type=="onMouseMove")caption = "マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";}
}
var win = new mywin();
これだとちゃんとマウス座標をしっかりとactionで受け取れてうのですけど、この手のサンプルはいつも必ずと言っていいほど新しいwindowを作成してそこで動かしてますので、
これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。
これ自体をゲームに組み込むと言う事では無く、勉強で例えばこれをkagで組み込めれば他のactionメソッドも同じように組み込めるように理解出来ればと思っての事なのですが・・・・
いつも別窓ではそれなりにうまくいくのですけど、いざこれをkagにもってこようとするとエラー連発で1つの大きな壁になってしまってるのです。
0209名前は開発中のものです。
2011/02/17(木) 20:51:02ID:9WE+dCEVkag.superOnMouseMove = kag.onMouseMove;
var mess1;
kag.onMouseMove = function(x,y,shift){
if(!kag.fullScreened){
superOnMouseMove(...);
mess1="マウスカーソルの位置:(" + x + "),(" + y + "),(" + shift + ")";
caption = mess1;
if(kag.menu.visible){
kag.menu.visible=false;
}else if(y<=10){
kag.menu.visible=true;
}
kag.innerHeight=600;
}
};
少し手直ししてこれで動かせてるのですが、例えばkag.onMouseMove = function(x,y,shift)で関数式としてやってるらしいと言う事はなんとなくネットで調べてわかったのですが、
これを普通の書式に出来ないのか?とかなぜこの書式じゃないとダメなのかとか、この書式は最後に;をつける以外に違いはなさそうなのに普通の書式にするとなぜエラーが出るのだろうか?とかわからない事だらけなのです。
またkag.superOnMouseMove = kag.onMouseMove2 = kag.onMouseMove;とかしてkag.onMouseMove2をもう1つ作って同時に動かしてみようとして失敗したり、なんで出来ないんだろうと色々試しては挫折し続けてます。
0210名前は開発中のものです。
2011/02/17(木) 21:38:02ID:Hn8XXTzb> これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。
Initialize.tjs内で
global.kag = new mywin() if typeof global.kag == "undefined";
Override.tjsで
class mywin extends KAGWindow
以下略
こんなのが希望の答すか(ウチはこんなんで動いてますが正道かは知りません)
で結局何がしたいのさw
イチから組み直すほどシステムにオリジナリティが無ければ、
そっちからアプローチしたほうが早くないかな
勉強っつーなら、勝手に複雑にして勝手に悩めと思ってしまうが
0211名前は開発中のものです。
2011/02/17(木) 22:09:21ID:9WE+dCEV良く読んで試してみます。
今でもタグだけでも吉里吉里は十分良いツールなのですが、やれる幅をもっと増やしたいのです。
例えばマウス関係を覚えればインターフェースの改善が出来ますし、現状でも色々な方のプラグインとか自作分とかでそれなりには組み上がってはいるのですが、
エフェクト関係や本体スクリプトまわりに比べてUIがほとんど手つかずで、それで改善しようとアクションメソッド勉強してたら完全にはまってしまいました。
これがうまく行けば、一気に壁が越えられると思います。
本当にありがとうございます。
0212名前は開発中のものです。
2011/02/17(木) 22:50:35ID:jvYmMe0cVSで通るようになったんだ。
前はBCBないとコンパイル出来なかったのに。
0213名前は開発中のものです。
2011/02/17(木) 23:02:21ID:9WE+dCEV試してみましたが、ウィンドが二枚出てしまいました。
理想としては今のシステムの中で・・・やりたかったのですが、不勉強なせいだと思いますので、もう少し勉強します。
命令の意味がもう少し理解出来ればそこからうまくやれるかと思います。
ところで、最初の方の質問のものを、簡単にクラス化して試してみたのですが・・・・・
class test_tempLayer{
var test_tempLayer;
function test_tempLayer(){
kag.add(test_tempLayer = new Layer(kag, kag.fore.base));
with(test_tempLayer){
.loadImages("glay.png");
.setSizeToImageSize(.width, .height);
.setSize(kag.innerWidth,kag.innerHeight);
.visible=true;}
}
function action(ev){
if(ev.target == test_tempLayer&&ev.type=="onMouseMove")
{
caption="マウスカーソルの位置:(" + ev.x + "),(" + ev.y + "),(" + ev.shift + ")";}
else if(ev.target == test_tempLayer&&ev.type == "onMouseLeave"){
caption="マウスカーソルはプライマリレイヤの外にあります";}
}
function finalize(){}
}
var test_tempLayerx = new test_tempLayer();
最初これならいけるかとおもったのですが、飛ばないのですがactionが動いてません。
どうしてなのか教えて頂きたいです。
0214名前は開発中のものです。
2011/02/17(木) 23:06:11ID:3XtPmN9mプラグインの話でしょ
吉里吉里2本体はBCBないと無理だと思われ
0215名前は開発中のものです。
2011/02/17(木) 23:26:25ID:mHK4gVtsactionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈(吉里吉里2リファレンス参照)だけど、
その構築分じゃtest_tempLayerクラスの中にactionメソッド定義してないか?
で、今のウィンドウの中でやりたいっていうのなら、単にAfterInit.tjsの中で
kag.action = function(ev){
switch(ev.type){
case "onMouseMove":
this.caption = "X:"+ev.x + "," + "Y:"+ev.y;
break;
case "onMouseLeave":
this.caption = "Bye.";
break;
}
};
みたいに書けばそれで済む話じゃね?
0216名前は開発中のものです。
2011/02/17(木) 23:36:23ID:mHK4gVtsオレのうろ覚えじゃなければ、TJSでは別々のファイルで同一のクラスを分割定義する事は出来ない
(例えばMainwindow2.tjsというファイルを作り、その中で
class KAGWindow extends Window(以下略)
とか書いても動かない)
っつう仕様が有った筈なので、後から機能を足すなら普通の書式はあんまりよろしくない。
というか、一度読み込んでしまったクラスに後から機能を追加するなんて事出来たっけ?
だから通常は、「KAGWindowクラスそのもの」じゃなくて、「KAGWindowクラスから生成されたkagというオブジェクト」みたいに
既に生成済みのオブジェクトに対して
kag.onMouseMove = function(以下略); といった形で組むことが多い。というかそれが普通?
0217名前は開発中のものです。
2011/02/17(木) 23:40:43ID:jvYmMe0cそういうことか。悪かった。
0218名前は開発中のものです。
2011/02/17(木) 23:48:28ID:9WE+dCEVlayerクラスのイベントにonMouse〜系があるのでそれでいけるものだと思ったのですが、それではダメなのですね。
関数オブジェクト?でしたか。やはりこの書式しか無いのですね。
この書式まったく使った事が無くて、漠然としか意味が分からず必死に普通の書式を試していたのですが・・・
ありがとうございます。もうちょっと勉強してまたわからなかったらお願いします。m(__)m
0219名前は開発中のものです。
2011/02/17(木) 23:50:51ID:9WE+dCEVそれが普通なのですか。
とすると参考書にはそう言う感じには書かれてなくて普通の書式ばかりなので、ゲーム制作用の機能拡張には向いてないのですね。
0220名前は開発中のものです。
2011/02/18(金) 00:01:00ID:/8tLczkp>>215の動作だって、コレはあくまでAfterInit.tjs等の別ファイルに書くことを前提にしてるけど、
Mainwindow.tjsの中に直接
function action(ev){
switch(以下略)
}
って書く事も出来るし、そういう形でコード追加してる人も多く居る。
ただ後々コードを修正する時になって、「アレ、俺どのファイルに追加コード書いたっけ?」っていう事になって混乱する可能性があり得るので
AfterInit.tjsみたいな単一のファイルの中に
kag.action = function(ev){ 略 };
kag.foo = function(){};
abc.bar = function(){};
みたいな具合に追加コードをどっさり書き連ねる手法も有るよっつう話。どっちが拡張に向くか向かないかってのはちょっと違う。
0221名前は開発中のものです。
2011/02/18(金) 00:02:38ID:1kmgXvbN確認しちゃったじゃないか。多重定義はあと優先だよ
0222名前は開発中のものです。
2011/02/18(金) 00:08:18ID:/8tLczkpあらやだ私ったら恥ずかしい
0223名前は開発中のものです。
2011/02/18(金) 00:16:26ID:6piJtGX6Mainwindow.tjsはバージョンアップの度に書き換えなくちゃいけなくなるので、なるべくなら触りたくないんです。
AfterInit.tjsならその心配もありませんし、tjs式はわざわざ他のksファイルにiscriptで書いてたので、それに書き直してみます。
今回頂いたのは正直まだfunction()を完全に理解していないので、次は画面内全部じゃなく.hitThresholdに対応するように考えて見ます。
0224名前は開発中のものです。
2011/02/18(金) 14:11:14ID:pGkxxiu5>>215でactionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈と言うことだし実際試したら動かないわけなんだけど、じゃぁlayerクラスのonなんちゃら系って言うのは使えないの?
windowクラスを作る事前提なら、KAG上では無理って事?
俺も初心者に毛が生えた程度でスマン
0225名前は開発中のものです。
2011/02/18(金) 15:48:43ID:27Mbg7EK0226名前は開発中のものです。
2011/02/18(金) 19:33:36ID:/8tLczkpWindowクラスのactionメソッドは「自分の中(windowの中)で何かイベントが起きた(各レイヤにマウスが載ったetc)かどうか」を検知するもんであって
各レイヤが各々に「自分の中(そのレイヤクラス自身)で何かイベントが起きたかどうか」を検知するのは別の話だよ。
kag.primaryLayer.onMouseMove = function(略) と書いても機能的には同じことが果たせる。
書き方が違うってだけのことよー
0227名前は開発中のものです。
2011/02/18(金) 20:19:51ID:kdo303teobserveにしとけば読んで字の如くなのに。
コード的にも
function observer(ev){
//foo
}
kag.observe = observer;
で意味が通じるのに。
0228名前は開発中のものです。
2011/02/18(金) 21:05:39ID:AX8UzFm1質問なのですが、ゲーム起動画面の「栞をはさむ」を「セーブする」という文字にするにはどうすればいいのでしょうか。
調べた結果、MainWindow.tjsを編集すればいいという結果だったのですが、どこをいじればいいのかわかりません。
自分なりに以下のように編集してみたのですが、変更されません・・・。
// 保存するファイル名を得る
var selectdata = %[
title:"セーブする",
filter: [saveThumbnail ?
"サムネイル画像付き栞データ(*.bmp)|*.bmp" :
"栞データ(*.kdt)|*.kdt"],
0229名前は開発中のものです。
2011/02/18(金) 21:51:25ID:Go9Y3Ma10230名前は開発中のものです。
2011/02/18(金) 22:22:32ID:ogV0P+iBみんな吉里吉里製のゲームを世に出すときに 解析対策してる?
フリーゲーム見ると結構やってる人いるみたいなんだけど
簡単にできるもんなの?
0231名前は開発中のものです。
2011/02/18(金) 22:27:56ID:hDc5Qb3Q0232名前は開発中のものです。
2011/02/18(金) 22:40:37ID:ogV0P+iBこう返す奴がいつもいるのは知ってるけどさ 煽るだけの意見は求めてないよ
「解析したくなるほど良いゲームを作っていない」という根拠がどこにあるんだ
というか論点はそこじゃない 分かれ
0233名前は開発中のものです。
2011/02/18(金) 22:46:36ID:hDc5Qb3Q後はどこまでやるかコストとか期間とかの問題だけ
個人的にはそんなことにパワー割きたくないから大したことはやらない
0234名前は開発中のものです。
2011/02/18(金) 23:02:19ID:AX8UzFm1できました!!
どうもありがとうございました。本当に助かりました。
またお世話になるかもしれませんが、そのときもよろしくお願いします。
0235名前は開発中のものです。
2011/02/18(金) 23:10:56ID:W4WoUTwG一応コメント全部抜いて
すぐに解かれる物だけど、すぐに解くレベルの人なら俺が作ったのより良い物をつくれるだろうし、誰かに手伝って貰って解くレベルの人は読んでもわからんだろうしと考えてる
0236名前は開発中のものです。
2011/02/19(土) 00:25:04ID:WVYEDYF2xp3enc.dllとxp3dec.dllを自作すればいいだけ
ただし同程度の知識を持っている人間なら簡単に破れる
その程度で良ければ
0237名前は開発中のものです。
2011/02/19(土) 01:03:11ID:e7TICuoiおおおなんか出来た!
なんでうまくいかんのだろうと放置してたけどあっさり解決したよorz
thank you!!
暗号かぁ
テキストか何かでキーを任意で変えられるとかなりいいかなと思う
fateのあのキーはちょっと笑えるけど読めてしまうあれは果たして正しいのか?とか思ってしまう今日この頃
0238名前は開発中のものです。
2011/02/19(土) 01:49:33ID:cZV2lQMX0239名前は開発中のものです。
2011/02/19(土) 07:24:38ID:ptgwOnocそれともラベルをたくさん作る以外に何か方法があるんでしょうか?
0240名前は開発中のものです。
2011/02/19(土) 08:35:37ID:WVYEDYF20241名前は開発中のものです。
2011/02/19(土) 08:49:41ID:ry9A4YMJ0242名前は開発中のものです。
2011/02/19(土) 12:26:26ID:ptgwOnocどこでもセーブプラグインとやらを見つけました。
使い方にも載っていたようにやはりセーブポイントには[np]をつけなくてはいけないんですね。
>>241
すいません、過去ログに載っていましたか?
0243名前は開発中のものです。
2011/02/19(土) 12:50:29ID:AZlqjiRaところで一昨日からアドバイス頂いて色々試しているのですが、式中関数の中では他のメソッドを呼び出せないのですね。
クラスのなかでtimerを呼びに行こうとして色々試したのですがダメでした。結局式中関数に直接書いてしまいましたが見た目がブサイクになってしまったのですけど、仕方無いかなと・・・・
0244名前は開発中のものです。
2011/02/19(土) 13:08:14ID:+ZjzSuRr0245名前は開発中のものです。
2011/02/19(土) 14:21:40ID:TR/rwGBg例えば80ピクセルの幅を移動するのと同時に表示をフェードインさせたいんですが、
移動開始時はopacity=0で、移動終了時に丁度255になるようにしたいんですけど、上手くいきません
(初めから完全に表示されていたり、半透明で移動した後最後に突然opacity=255になる)
何か良い方法は無いですか?
0246名前は開発中のものです。
2011/02/19(土) 14:51:36ID:AZlqjiRa0247名前は開発中のものです。
2011/02/19(土) 15:14:15ID:TR/rwGBg255を移動ピクセルで割って、その数を描画のタイミングで加算してみたりしたんですが
たった数十ピクセル移動する間にopacityが10000とかまで加算されたりして、
255に収まるようにすると、上記の()内のような事になってしまいます
0248名前は開発中のものです。
2011/02/19(土) 15:38:32ID:cZV2lQMX間違ってるからでしょ
コードだしてもらわんと誰もわからんよ
0249名前は開発中のものです。
2011/02/19(土) 16:39:54ID:wVhY5yhFとくに吉里吉里はxp3filterが標準で用意されてるから楽だし。
0250名前は開発中のものです。
2011/02/19(土) 16:44:28ID:poxQtpu7そんなところだろうと予想
0251名前は開発中のものです。
2011/02/19(土) 16:51:34ID:TR/rwGBgstartTime = System.getTickCount();
System.addContinuousHandler(handler);
- 以下handler内
dist = (tickCount - startTime) * speed \ 1000;
if (TextLayer.top > moveH) {
TextLayer.top = it - dist;
}
※moveH=最終的な到着点の座標
レイヤを下から上へ移動させる時、大体こんな感じで記述しています
で、opacityをどこで加算していけば、moveタグみたいに滑らかに移動してくれるのかと・・・
0252名前は開発中のものです。
2011/02/19(土) 17:12:35ID:6HEBXbJGタイトル画面でロードをするために右クリックサブルーチンを表示させたいんだけど下のソースで実行してクリックしても無反応なんだ
誰か助けてくれ
[link exp="kag.restoreBookMark()"]ロードする[endlink]
0253名前は開発中のものです。
2011/02/19(土) 17:24:52ID:JEjsxLwSコメント改行全部抜くとか、流用はやーめーてーねーという意思表示をするくらいが丁度いいんですかね
参考になりました。ありがとう
>>252
それじゃ右クリックサブルーチン呼び出せないよ・・・
サブルーチンの意味をお勉強すると手っ取り早いよ
0254名前は開発中のものです。
2011/02/19(土) 17:43:12ID:6HEBXbJG意味調べてみたんだが・・・
エンドリンクを抜いたりカッコを抜いたりしてみたんだけど駄目だったorz
無知な俺に答えを教えてくれ!
0255名前は開発中のものです。
2011/02/19(土) 17:47:21ID:lNwerVwv右クリックサブルーチンにてセーブロードするサンプルが載ってるんだが…見た?
良い機会だからクレクレせず探してみー
0256名前は開発中のものです。
2011/02/19(土) 18:36:57ID:6HEBXbJG一通り見たハズなんだが答えが見えないんだ・・・
ちょっとkwsk頼む
0257名前は開発中のものです。
2011/02/19(土) 18:40:47ID:poxQtpu7「毎秒speedドットだけ動かす」ルーチンなら
総移動時間を計算して、経過時間との%取って透明度変化
移動時間指定にしたら1ルーチンで上下に動かせるようになるしこっちのが良いと思う
time = 1000 (1000msで移動完了)
firstT = TextLayer.Top moveT = 最終的な到達点
firstO = 0 moveO = 255
-handler内
per = (tickCount - startTime)/time
TextLayer.top = firstT+( (moveT-firstT) * per );
TextLayer.opacity = firstO+( (moveO-firstO) * per );
0258名前は開発中のものです。
2011/02/19(土) 19:13:56ID:lNwerVwvホントに探して読んだ?そのサンプルソース程度は理解できないと後々辛いよ
>>252
それだと栞の何番を読むかが指定されてないよ
0259名前は開発中のものです。
2011/02/19(土) 19:29:09ID:6HEBXbJG正確には一通り探したけどどこだかわからなかったんだ…
追記なんだが、右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ
そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい
0260名前は開発中のものです。
2011/02/19(土) 20:08:22.91ID:TR/rwGBgおおお、ありがとうございます!
上も下も表示出すのも消すのもバッチリです、スクリプトが随分すっきりしました
0261名前は開発中のものです。
2011/02/19(土) 20:27:59.68ID:lNwerVwvうう…結局付属のrclick_tjs.ksの使い方が分からないと?
[link exp="rclickconfig_object.show()"]ロードする[endlink]
的にやればいいんじゃないの?
(トリガを待ったりするし、これだけでは完全には動かないが)
言ってるサンプルはここね
KAG System リファレンス>右クリックサブルーチンについて>難しい例
まずはKAGオンリーで作ってみないか?あなたのスキルに添って
「サブルーチン」という概念が分かれば上のrclick_tjs.ksも難なく使いこなせるよ
0262名前は開発中のものです。
2011/02/19(土) 20:48:41.53ID:6HEBXbJGソースありがとう!
あとは直接サムネイル画面に移動する方法だけだわ
リファレンスは今見たところ
見逃してたぜ・・・
それでKAGオンリーで作るってどういうこと?
今現在もKAGオンリーだと思うんだけど・・・
0263名前は開発中のものです。
2011/02/19(土) 22:08:22.33ID:1OU1FngV0264名前は開発中のものです。
2011/02/20(日) 01:06:49.47ID:YcSY7ZqYincontextofわかったようなわからないようなです。
これは数をこなして覚えないと覚えられないタイプのコマンドみたいでとりあえず色々やってみます。
全然別の話しなのですが、メッセージレイヤーを出したままコンフィグ画面を作ろうとしてはたと困ったのですが、履歴書き出しを停止してもそのまま画面をクリックするとメッセージがどんどん進んでしまって。
kag.tempsave(0);でもメッセージは戻らなくて、MessageLayer.tjsのクリックを受け付ける所にフラグで禁則かけても見た目は止まったように見えても解除するとクリック分テキストが進んでいて。
結局無理矢理メッセージレイヤーの上に透明のレイヤーを被せてクリック出来ないようにしたのですが、どうにもスマートじゃなくて。
メッセージレイヤーを表示したまま一時的に、クリック出来なくする方法は無いのでしょうか?
消すのはたぶんinvisibleByUserあたりを実行すれば良いと思うのですが・・・
0265名前は開発中のものです。
2011/02/20(日) 02:30:01.32ID:qdK69SRk0266名前は開発中のものです。
2011/02/20(日) 02:45:33.67ID:YcSY7ZqYありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています