■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50 [PR]ぜろちゃんねるプラス[PR]  
レス数が1000を超えています。残念ながら全部は表示しません。

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

1 :名前は開発中のものです。:2011/02/03(木) 13:12:07 ID: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/

201 :名前は開発中のものです。:2011/02/17(木) 00:02:01 ID:7ekoSIjI
そうなのかな?
サイズがあからさまに違うし、拡張子をdllに変えてもうごかなかったorz
いくつか試したけど、Exrasterなんか倍くらいサイズ違った・・・・

202 :名前は開発中のものです。:2011/02/17(木) 00:11:16 ID:h1zSGavv
むしろどうやったんだよ
kirikiri2以下エクスポートしてslnひらいてコンパイル押すだけだろうが

203 :名前は開発中のものです。:2011/02/17(木) 00:26:47 ID:i1eT1ONz
I
・layerExフォルダ
I
・layerExImageフォルダ
I
・tp_stub.cpp
I
・tp_stub.cpp

BCC Developer>新規作成>プロジェクトで適当にプロジェクト名を作って。
出来たプロジェクトに上の4つをそのままドラッグで放り込んで一応デフォルトプロジェクトの編集でターゲットがdllにセットされてるのを確認してメイク。
これで一応exeが出来るんだけどdllに書き換えてもなぜか動かない

204 :名前は開発中のものです。:2011/02/17(木) 00:46:22 ID:D3vStg/X
意味わかってないなら、素直に Visual Studio 入手してこい。Express ならただだ

205 :名前は開発中のものです。:2011/02/17(木) 00:51:48 ID:i1eT1ONz
意味が分かってないからそうしてみる。
本当に悪い、C++は触った事一切無くてチンプンカンプン。

206 :名前は開発中のものです。:2011/02/17(木) 04:47:22 ID: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;
}
}
}

これを反映させたいのです。
また同じようにこれをイベントハンドラで反映させるにはどうしたら良いのでしょうか?

207 :名前は開発中のものです。:2011/02/17(木) 19:45:02 ID:Hn8XXTzb
>>206
結局ゲームとして何をやりたいのか?

サンプルとやらを見せられて、余計混乱しているとお見受けします
スマートじゃないけど、MainWindow.tjsの中に直接
function onMouseMove(x, y, shift)を記述、挿入してはいかが
x,yにマウスカーソルの位置が入ってくるから
リファレンスのWindowクラス参考ね

208 :名前は開発中のものです。:2011/02/17(木) 20:43:02 ID:9WE+dCEV
>>207
だいぶ不要と思う所を削りましたが、サンプルとかだと書籍とかネットとかだとだいたいこんな感じに書かれてまして
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つの大きな壁になってしまってるのです。

209 :名前は開発中のものです。:2011/02/17(木) 20:51:02 ID:9WE+dCEV
座標を取るだけなら、過去ログを探して
kag.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つ作って同時に動かしてみようとして失敗したり、なんで出来ないんだろうと色々試しては挫折し続けてます。

210 :名前は開発中のものです。:2011/02/17(木) 21:38:02 ID:Hn8XXTzb
>>208
> これを実際のkagに組み込もうとするといつも途中で挫折してしまうのです。

Initialize.tjs内で
global.kag = new mywin() if typeof global.kag == "undefined";

Override.tjsで
class mywin extends KAGWindow
以下略

こんなのが希望の答すか(ウチはこんなんで動いてますが正道かは知りません)

で結局何がしたいのさw
イチから組み直すほどシステムにオリジナリティが無ければ、
そっちからアプローチしたほうが早くないかな
勉強っつーなら、勝手に複雑にして勝手に悩めと思ってしまうが

211 :名前は開発中のものです。:2011/02/17(木) 22:09:21 ID:9WE+dCEV
ありがとうございます。
良く読んで試してみます。

今でもタグだけでも吉里吉里は十分良いツールなのですが、やれる幅をもっと増やしたいのです。
例えばマウス関係を覚えればインターフェースの改善が出来ますし、現状でも色々な方のプラグインとか自作分とかでそれなりには組み上がってはいるのですが、
エフェクト関係や本体スクリプトまわりに比べてUIがほとんど手つかずで、それで改善しようとアクションメソッド勉強してたら完全にはまってしまいました。
これがうまく行けば、一気に壁が越えられると思います。
本当にありがとうございます。

212 :名前は開発中のものです。:2011/02/17(木) 22:50:35 ID:jvYmMe0c
>>206
VSで通るようになったんだ。
前はBCBないとコンパイル出来なかったのに。

213 :名前は開発中のものです。:2011/02/17(木) 23:02:21 ID:9WE+dCEV
>>210
試してみましたが、ウィンドが二枚出てしまいました。
理想としては今のシステムの中で・・・やりたかったのですが、不勉強なせいだと思いますので、もう少し勉強します。
命令の意味がもう少し理解出来ればそこからうまくやれるかと思います。
ところで、最初の方の質問のものを、簡単にクラス化して試してみたのですが・・・・・

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が動いてません。
どうしてなのか教えて頂きたいです。

214 :名前は開発中のものです。:2011/02/17(木) 23:06:11 ID:3XtPmN9m
>>212
プラグインの話でしょ
吉里吉里2本体はBCBないと無理だと思われ

215 :名前は開発中のものです。:2011/02/17(木) 23:26:25 ID:mHK4gVts
>>213
actionメソッドは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;
}
};

みたいに書けばそれで済む話じゃね?

216 :名前は開発中のものです。:2011/02/17(木) 23:36:23 ID:mHK4gVts
んで>>209で「なぜ関数式じゃないとダメなのか」って事を言ってたけど、
オレのうろ覚えじゃなければ、TJSでは別々のファイルで同一のクラスを分割定義する事は出来ない
 (例えばMainwindow2.tjsというファイルを作り、その中で
      class KAGWindow extends Window(以下略)
  とか書いても動かない)
っつう仕様が有った筈なので、後から機能を足すなら普通の書式はあんまりよろしくない。
というか、一度読み込んでしまったクラスに後から機能を追加するなんて事出来たっけ?


だから通常は、「KAGWindowクラスそのもの」じゃなくて、「KAGWindowクラスから生成されたkagというオブジェクト」みたいに
既に生成済みのオブジェクトに対して
 kag.onMouseMove = function(以下略); といった形で組むことが多い。というかそれが普通?

217 :名前は開発中のものです。:2011/02/17(木) 23:40:43 ID:jvYmMe0c
>>214
そういうことか。悪かった。

218 :名前は開発中のものです。:2011/02/17(木) 23:48:28 ID:9WE+dCEV
>>215
layerクラスのイベントにonMouse〜系があるのでそれでいけるものだと思ったのですが、それではダメなのですね。

関数オブジェクト?でしたか。やはりこの書式しか無いのですね。
この書式まったく使った事が無くて、漠然としか意味が分からず必死に普通の書式を試していたのですが・・・
ありがとうございます。もうちょっと勉強してまたわからなかったらお願いします。m(__)m

219 :名前は開発中のものです。:2011/02/17(木) 23:50:51 ID:9WE+dCEV
>>216
それが普通なのですか。
とすると参考書にはそう言う感じには書かれてなくて普通の書式ばかりなので、ゲーム制作用の機能拡張には向いてないのですね。

220 :名前は開発中のものです。:2011/02/18(金) 00:01:00 ID:/8tLczkp
いや、普通の書式を使う事を否定してる訳じゃないよ。

>>215の動作だって、コレはあくまでAfterInit.tjs等の別ファイルに書くことを前提にしてるけど、
Mainwindow.tjsの中に直接


function action(ev){
  switch(以下略)
}

って書く事も出来るし、そういう形でコード追加してる人も多く居る。
ただ後々コードを修正する時になって、「アレ、俺どのファイルに追加コード書いたっけ?」っていう事になって混乱する可能性があり得るので
AfterInit.tjsみたいな単一のファイルの中に
kag.action = function(ev){ 略 };
kag.foo = function(){};
abc.bar = function(){};
みたいな具合に追加コードをどっさり書き連ねる手法も有るよっつう話。どっちが拡張に向くか向かないかってのはちょっと違う。


221 :名前は開発中のものです。:2011/02/18(金) 00:02:38 ID:1kmgXvbN
>>216
確認しちゃったじゃないか。多重定義はあと優先だよ

222 :名前は開発中のものです。:2011/02/18(金) 00:08:18 ID:/8tLczkp
あれ、そうだっけ。ごめん間違えた。
あらやだ私ったら恥ずかしい

223 :名前は開発中のものです。:2011/02/18(金) 00:16:26 ID:6piJtGX6
AfterInit.tjs自体ほとんど使ってなかったのですが、そっちに書いてしまった方が確かにいいですね。
Mainwindow.tjsはバージョンアップの度に書き換えなくちゃいけなくなるので、なるべくなら触りたくないんです。
AfterInit.tjsならその心配もありませんし、tjs式はわざわざ他のksファイルにiscriptで書いてたので、それに書き直してみます。

今回頂いたのは正直まだfunction()を完全に理解していないので、次は画面内全部じゃなく.hitThresholdに対応するように考えて見ます。

224 :名前は開発中のものです。:2011/02/18(金) 14:11:14 ID:pGkxxiu5
横からスマン
>>215でactionメソッドはLayerクラスじゃなくてWindowクラスに用意されてるもんだった筈と言うことだし実際試したら動かないわけなんだけど、じゃぁlayerクラスのonなんちゃら系って言うのは使えないの?
windowクラスを作る事前提なら、KAG上では無理って事?
俺も初心者に毛が生えた程度でスマン

225 :名前は開発中のものです。:2011/02/18(金) 15:48:43 ID:27Mbg7EK
吉里吉里リファレンスの「イベントシステムについて」を上から下まで一通りよんで考えればおのずとわかることでしょう

226 :名前は開発中のものです。:2011/02/18(金) 19:33:36 ID:/8tLczkp
>>224
Windowクラスのactionメソッドは「自分の中(windowの中)で何かイベントが起きた(各レイヤにマウスが載ったetc)かどうか」を検知するもんであって
各レイヤが各々に「自分の中(そのレイヤクラス自身)で何かイベントが起きたかどうか」を検知するのは別の話だよ。

kag.primaryLayer.onMouseMove = function(略) と書いても機能的には同じことが果たせる。
書き方が違うってだけのことよー

227 :名前は開発中のものです。:2011/02/18(金) 20:19:51 ID:kdo303te
actionって名前が悪いんだよな。
observeにしとけば読んで字の如くなのに。
コード的にも
function observer(ev){
//foo
}

kag.observe = observer;
で意味が通じるのに。


228 :名前は開発中のものです。:2011/02/18(金) 21:05:39 ID:AX8UzFm1
お初にこのスレに来ました者です。

質問なのですが、ゲーム起動画面の「栞をはさむ」を「セーブする」という文字にするにはどうすればいいのでしょうか。
調べた結果、MainWindow.tjsを編集すればいいという結果だったのですが、どこをいじればいいのかわかりません。

自分なりに以下のように編集してみたのですが、変更されません・・・。


// 保存するファイル名を得る
var selectdata = %[
title:"セーブする",
filter: [saveThumbnail ?
"サムネイル画像付き栞データ(*.bmp)|*.bmp" :
"栞データ(*.kdt)|*.kdt"],

229 :名前は開発中のものです。:2011/02/18(金) 21:51:25 ID:Go9Y3Ma1
Menus.tjs110行目近辺に求める答えがあると思うよ


230 :名前は開発中のものです。:2011/02/18(金) 22:22:32 ID:ogV0P+iB
ちょっと雑談というか質問というか意見を聞きたいんだが
みんな吉里吉里製のゲームを世に出すときに 解析対策してる?

フリーゲーム見ると結構やってる人いるみたいなんだけど
簡単にできるもんなの?

231 :名前は開発中のものです。:2011/02/18(金) 22:27:56 ID:hDc5Qb3Q
そう言うことは、解析したくなるほど良いゲームを作ってから考えような

232 :名前は開発中のものです。:2011/02/18(金) 22:40:37 ID:ogV0P+iB
>>231
こう返す奴がいつもいるのは知ってるけどさ 煽るだけの意見は求めてないよ
「解析したくなるほど良いゲームを作っていない」という根拠がどこにあるんだ
というか論点はそこじゃない 分かれ

233 :名前は開発中のものです。:2011/02/18(金) 22:46:36 ID:hDc5Qb3Q
マジレスするなら、力量さえあれば解析対策なんていくらでもできると思うぞ
後はどこまでやるかコストとか期間とかの問題だけ

個人的にはそんなことにパワー割きたくないから大したことはやらない

234 :名前は開発中のものです。:2011/02/18(金) 23:02:19 ID:AX8UzFm1
>>229
できました!!
どうもありがとうございました。本当に助かりました。

またお世話になるかもしれませんが、そのときもよろしくお願いします。

235 :名前は開発中のものです。:2011/02/18(金) 23:10:56 ID:W4WoUTwG
俺は同業者対策にtjsと自分で作ったマクロだけ吉里吉里の暗号かけてる
一応コメント全部抜いて
すぐに解かれる物だけど、すぐに解くレベルの人なら俺が作ったのより良い物をつくれるだろうし、誰かに手伝って貰って解くレベルの人は読んでもわからんだろうしと考えてる

236 :名前は開発中のものです。:2011/02/19(土) 00:25:04 ID:WVYEDYF2
dllをビルドできる環境があるなら簡単にできる
xp3enc.dllとxp3dec.dllを自作すればいいだけ
ただし同程度の知識を持っている人間なら簡単に破れる
その程度で良ければ

237 :名前は開発中のものです。:2011/02/19(土) 01:03:11 ID:e7TICuoi
>>225-227
おおおなんか出来た!
なんでうまくいかんのだろうと放置してたけどあっさり解決したよorz
thank you!!

暗号かぁ
テキストか何かでキーを任意で変えられるとかなりいいかなと思う
fateのあのキーはちょっと笑えるけど読めてしまうあれは果たして正しいのか?とか思ってしまう今日この頃

238 :名前は開発中のものです。:2011/02/19(土) 01:49:33 ID:cZV2lQMX
解析にキーなんて関係ないけどな

239 :名前は開発中のものです。:2011/02/19(土) 07:24:38 ID:ptgwOnoc
よく吉里吉里で作ったゲームでいつでもセーブできるものがありますけど、それってラベルを大量に作ってるんですか?
それともラベルをたくさん作る以外に何か方法があるんでしょうか?

240 :名前は開発中のものです。:2011/02/19(土) 08:35:37 ID:WVYEDYF2
「吉里吉里 どこでもセーブ」でググれ

241 :名前は開発中のものです。:2011/02/19(土) 08:49:41 ID:ry9A4YMJ
いい加減にマルチポストするのやめれ('A`)

242 :名前は開発中のものです。:2011/02/19(土) 12:26:26 ID:ptgwOnoc
>>240
どこでもセーブプラグインとやらを見つけました。
使い方にも載っていたようにやはりセーブポイントには[np]をつけなくてはいけないんですね。

>>241
すいません、過去ログに載っていましたか?

243 :名前は開発中のものです。:2011/02/19(土) 12:50:29 ID:AZlqjiRa
たしか毎行に*|を入れると出来たと思いますけど、手間かかるしプラグインの誤動作で画面崩れるの怖いので自分で確実なところでセーブ出来るようにしてます。

ところで一昨日からアドバイス頂いて色々試しているのですが、式中関数の中では他のメソッドを呼び出せないのですね。
クラスのなかでtimerを呼びに行こうとして色々試したのですがダメでした。結局式中関数に直接書いてしまいましたが見た目がブサイクになってしまったのですけど、仕方無いかなと・・・・

244 :名前は開発中のものです。:2011/02/19(土) 13:08:14 ID:+ZjzSuRr
ヒント: incontextof

245 :名前は開発中のものです。:2011/02/19(土) 14:21:40 ID:TR/rwGBg
自前のレイヤをaddContinuousHandlerで移動させる時に、
例えば80ピクセルの幅を移動するのと同時に表示をフェードインさせたいんですが、
移動開始時はopacity=0で、移動終了時に丁度255になるようにしたいんですけど、上手くいきません
(初めから完全に表示されていたり、半透明で移動した後最後に突然opacity=255になる)
何か良い方法は無いですか?

246 :名前は開発中のものです。:2011/02/19(土) 14:51:36 ID:AZlqjiRa
移動中の描画のタイミングで段階的にopacityを弄るとうまくいくと思います。

247 :名前は開発中のものです。:2011/02/19(土) 15:14:15 ID:TR/rwGBg
レイヤのtop・leftを書き換えるところでopacityも変化するように、
255を移動ピクセルで割って、その数を描画のタイミングで加算してみたりしたんですが
たった数十ピクセル移動する間にopacityが10000とかまで加算されたりして、
255に収まるようにすると、上記の()内のような事になってしまいます

248 :名前は開発中のものです。:2011/02/19(土) 15:38:32 ID:cZV2lQMX
>>247
間違ってるからでしょ
コードだしてもらわんと誰もわからんよ


249 :名前は開発中のものです。:2011/02/19(土) 16:39:54 ID:wVhY5yhF
解析対策なんてデバッガかけるか実行中のメモリから抜かれるとどうにでもされるからやってないな。
とくに吉里吉里はxp3filterが標準で用意されてるから楽だし。

250 :名前は開発中のものです。:2011/02/19(土) 16:44:28 ID:poxQtpu7
移動は%で場所指定してるのに透明度はHandler呼ばれるたびに加算してるとか
そんなところだろうと予想

251 :名前は開発中のものです。:2011/02/19(土) 16:51:34 ID:TR/rwGBg
TextLayer.opacity = 0;
startTime = System.getTickCount();
System.addContinuousHandler(handler);

- 以下handler内
dist = (tickCount - startTime) * speed \ 1000;
if (TextLayer.top > moveH) {
    TextLayer.top = it - dist;
}
※moveH=最終的な到着点の座標

レイヤを下から上へ移動させる時、大体こんな感じで記述しています
で、opacityをどこで加算していけば、moveタグみたいに滑らかに移動してくれるのかと・・・

252 :名前は開発中のものです。:2011/02/19(土) 17:12:35 ID:6HEBXbJG
横からですまん、ちょっと質問

タイトル画面でロードをするために右クリックサブルーチンを表示させたいんだけど下のソースで実行してクリックしても無反応なんだ
誰か助けてくれ

[link exp="kag.restoreBookMark()"]ロードする[endlink]

253 :名前は開発中のものです。:2011/02/19(土) 17:24:52 ID:JEjsxLwS
色々と興味深い意見が聞けてよかったです
コメント改行全部抜くとか、流用はやーめーてーねーという意思表示をするくらいが丁度いいんですかね
参考になりました。ありがとう

>>252
それじゃ右クリックサブルーチン呼び出せないよ・・・
サブルーチンの意味をお勉強すると手っ取り早いよ

254 :名前は開発中のものです。:2011/02/19(土) 17:43:12 ID:6HEBXbJG
>>253
意味調べてみたんだが・・・
エンドリンクを抜いたりカッコを抜いたりしてみたんだけど駄目だったorz
無知な俺に答えを教えてくれ!

255 :名前は開発中のものです。:2011/02/19(土) 17:47:21 ID:lNwerVwv
KAG System リファレンスの中に
右クリックサブルーチンにてセーブロードするサンプルが載ってるんだが…見た?
良い機会だからクレクレせず探してみー

256 :名前は開発中のものです。:2011/02/19(土) 18:36:57 ID:6HEBXbJG
>>255
一通り見たハズなんだが答えが見えないんだ・・・
ちょっとkwsk頼む

257 :名前は開発中のものです。:2011/02/19(土) 18:40:47 ID:poxQtpu7
>>251
「毎秒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 );


258 :名前は開発中のものです。:2011/02/19(土) 19:13:56 ID:lNwerVwv
>>256
ホントに探して読んだ?そのサンプルソース程度は理解できないと後々辛いよ
>>252
それだと栞の何番を読むかが指定されてないよ

259 :名前は開発中のものです。:2011/02/19(土) 19:29:09 ID:6HEBXbJG
>>258
正確には一通り探したけどどこだかわからなかったんだ…
追記なんだが、右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ
そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい


260 :名前は開発中のものです。:2011/02/19(土) 20:08:22.91 ID:TR/rwGBg
>>257
おおお、ありがとうございます!
上も下も表示出すのも消すのもバッチリです、スクリプトが随分すっきりしました

261 :名前は開発中のものです。:2011/02/19(土) 20:27:59.68 ID:lNwerVwv
>>259
うう…結局付属のrclick_tjs.ksの使い方が分からないと?
[link exp="rclickconfig_object.show()"]ロードする[endlink]
的にやればいいんじゃないの?
(トリガを待ったりするし、これだけでは完全には動かないが)

言ってるサンプルはここね
KAG System リファレンス>右クリックサブルーチンについて>難しい例
まずはKAGオンリーで作ってみないか?あなたのスキルに添って
「サブルーチン」という概念が分かれば上のrclick_tjs.ksも難なく使いこなせるよ

262 :名前は開発中のものです。:2011/02/19(土) 20:48:41.53 ID:6HEBXbJG
>>261
ソースありがとう!
あとは直接サムネイル画面に移動する方法だけだわ

リファレンスは今見たところ
見逃してたぜ・・・

それでKAGオンリーで作るってどういうこと?
今現在もKAGオンリーだと思うんだけど・・・

263 :名前は開発中のものです。:2011/02/19(土) 22:08:22.33 ID:1OU1FngV
カグロイドのソース公開してくれんかな・・・。


264 :名前は開発中のものです。:2011/02/20(日) 01:06:49.47 ID:YcSY7ZqY
>>244
incontextofわかったようなわからないようなです。
これは数をこなして覚えないと覚えられないタイプのコマンドみたいでとりあえず色々やってみます。


全然別の話しなのですが、メッセージレイヤーを出したままコンフィグ画面を作ろうとしてはたと困ったのですが、履歴書き出しを停止してもそのまま画面をクリックするとメッセージがどんどん進んでしまって。
kag.tempsave(0);でもメッセージは戻らなくて、MessageLayer.tjsのクリックを受け付ける所にフラグで禁則かけても見た目は止まったように見えても解除するとクリック分テキストが進んでいて。
結局無理矢理メッセージレイヤーの上に透明のレイヤーを被せてクリック出来ないようにしたのですが、どうにもスマートじゃなくて。
メッセージレイヤーを表示したまま一時的に、クリック出来なくする方法は無いのでしょうか?
消すのはたぶんinvisibleByUserあたりを実行すれば良いと思うのですが・・・

265 :名前は開発中のものです。:2011/02/20(日) 02:30:01.32 ID:qdK69SRk
れいや.enable = false

266 :名前は開発中のものです。:2011/02/20(日) 02:45:33.67 ID:YcSY7ZqY
難しく考えてたのですが、初歩的過ぎました・・・
ありがとうございました。

267 :名前は開発中のものです。:2011/02/20(日) 04:17:50.19 ID:YcSY7ZqY
>>265
数種類試してみたのですが、.enable = falseはメッセージレイヤにはなさそうでした・・・

268 :名前は開発中のものです。:2011/02/20(日) 09:19:53.34 ID:iC7SYJBe
>>267
できるよ
試しにクリックできる状態のところに [eval exp="kag.current.enabled = false"] とでも挿し込んでみ
(ちなみにenable=falseしてても新たにリンク/ボタンをつくると操作できるようになるので注意)

269 :名前は開発中のものです。:2011/02/20(日) 11:23:11.41 ID:9jbrQ7SM
昨日の続きの質問なんだが、今タイトル画面からセーブ・ロード画面を呼び出したいんだ
右クリックサブルーチンの元のファイルはkr2_232r2\kag3\kag3plugin\sampleに入ってたrclick_.tjs.ksを使ったんだ
そのrclick_tjs.ksのセーブ・ロード画面をタイトルから表示させたい

以下のソースだと本編で右クリックを押した状態じゃん?
直で右クリック⇒ロードへ持っていきたいんだけどどう記述すればいいのか教えてくれ

[link exp="rclickconfig_object.show()"]ロードする[endlink]

270 :名前は開発中のものです。:2011/02/20(日) 11:38:18.84 ID:K9O8EjLN
show()内RClickConfigLayerを自前のRClickSaveLoadLayerにでも変えてやれば動くのだろう

KAGもTJSもよく分かっていない状態で改造に手を出すと、続出するバグがトラウマの原因となってしまうと思う


271 :名前は開発中のものです。:2011/02/20(日) 11:47:18.97 ID:YcSY7ZqY
>>268
うーん、試してみたら何事もなかったかのように動くので、まっさらな232r2でも試したのですが、やはり動くようです。

272 :名前は開発中のものです。:2011/02/20(日) 11:52:04.53 ID:9jbrQ7SM
>>270よくわからんが、改造をしないとその操作は無理ってことか?

273 :名前は開発中のものです。:2011/02/20(日) 12:14:33.07 ID:iC7SYJBe
>>271
ごめん見直してみたらリンクを無効化とかじゃなくてコンフィグ中にメッセージ送りを止めたいって話なのね
それってコンフィグを別のレイヤにしてそっちにcurrent移すだけでいいんじゃないの?
あとhistoryのoutputにメッセージ送りを止めるような機能はない

274 :名前は開発中のものです。:2011/02/20(日) 16:18:11.19 ID:jAwsX711
質問させてください

[macro name="macroA"]
 [image storage="&'kag.' + mp.page + '.base.Anim_loadParams.storage'" 以下略]
[endmacro]

というようなマクロを書いたのですが、[macroA page=fore] と指定しても
kag.fore.base.Anim_loadParams.storage を読み込んでくれずエラーが出てしまいます
どのように書けば動作するのでしょうか

275 :名前は開発中のものです。:2011/02/20(日) 17:53:42.89 ID:YcSY7ZqY
>>273
やっぱりそうなんですね。 止められないとすると上に被せて止めるのが一番手っ取り早いみたいですね。
コンフィグ画面もずりずりとメッセージ枠の下に引っ張り出してますので、現在処理開始と同時にメッセージ枠の上に透明マスクして、ずりずりコンフィグをひっぱりつつマスクの上にボタン画像を貼ったレイヤーを同時に動かしてます。
現実的にはやはりこれが一番よさそうですね。

276 :名前は開発中のものです。:2011/02/20(日) 19:58:37.00 ID:i5ckUWNm
>>264
コンフィグ画面をsetMode()するという手もあります。
ttp://devdoc.kikyou.info/tvp/docs/kr2doc/contents/f_Layer_setMode.html

>>274
imageタグの必須パラメータlayer= が指定されていないので
エラーになっているのでは?
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html#image
マクロ中で
[image layer=%layer|0 storage="&kag[mp.page].base.Anim_loadParams.storage" ...]
にしては如何。

あと、baseに何も読み込まれていないと、エラーになるはず。
19:49:06 コンソール : kag.fore.base.Anim_loadParams.storage = (例外発生)(void) から Object へ型を変換できません。Object 型が要求される文脈で Object 型以外の値が渡されるとこのエラーが発生します
というか、エラーメッセージが見たい…。

閑話休題、こんなのも読んでみては。
ttp://www.geocities.jp/keep_creating/DojinDOC/HowToReadErrorLog.html

277 :名前は開発中のものです。:2011/02/20(日) 21:06:28.99 ID:jAwsX711
>>276
レスありがとうございます
というかよくソース見てみたら単なるtypoでした……あああ
教えていただいたサイト勉強になります

278 :名前は開発中のものです。:2011/02/20(日) 22:57:18.44 ID:YcSY7ZqY
>>276
モーダルですね。
たしかにタイミングをうまくやればうまくいきそうです。
さっそく試してみます。

279 :名前は開発中のものです。:2011/02/21(月) 00:34:53.77 ID:lhX0r+bD
たびたびで申し訳ありません。
式中関数をずっとやってたのですが、クラスの中に以下のfanctionを書いてさらに式中関数を書きました。
それでクラスの外にbase_x base_yを設定すると以下の関数がクラスの中でも動くのですが、これをクラスの中に入れるとエラーがおきてしまいます。
switchも同様です。
クラスの中に変数を入れて、式中関数にも反映や変更は出来ないのでしょうか?
ネットで相当調べたのですが、式中関数自体の情報が少なくて・・・・・

セッターをセットするかしないとダメなのでしょうか?
コンテキストもまだぼんやりとしかわからなくて申し訳ありません。


function mouse_xy(){
kag.primaryLayer.onMouseMove = function(x, y, shift){
if (x > base_x &&y < base_y){
switch = true;}
else{
switch = false;}
}
};

280 :名前は開発中のものです。:2011/02/21(月) 00:57:10.42 ID:fMTx5PkL
switch = true;
これがおかしい

281 :名前は開発中のものです。:2011/02/21(月) 01:31:53.82 ID:lhX0r+bD
そこは式中関数の中なので、問題無いと思うのですが・・・
一応switchをコメントアウトしてもやはりエラーが出ます。(base_xの段階ですでにエラーが出ます)
変数を受け取れないみたいで、function mouse_xy(){の直下で base_xの中身を調べると間違いなく変数の中身は入ってました。
なぜ受け取らないのか、どうやったら受け取るのか色々試してみたのですが・・・

282 :名前は開発中のものです。:2011/02/21(月) 01:34:19.33 ID:9LsDDRVm
incontextof this; つけとけば多分動くよ

function mouse_xy(){
kag.primaryLayer.onMouseMove = function(x, y, shift){
if (x > base_x &&y < base_y){
switch = true;}
else{
switch = false;}
} incontextof this;
};

283 :名前は開発中のものです。:2011/02/21(月) 01:34:53.13 ID:lhX0r+bD
ごめんなさい こちらに書く時に;の位置を間違えました。
function mouse_xy(){
kag.primaryLayer.onMouseMove = function(x, y, shift){
if (x > base_x &&y < base_y){
switch = true;}
else{
switch = false;}
};
}
これでうごきません

284 :名前は開発中のものです。:2011/02/21(月) 01:40:06.76 ID:IhibMUrA
>>282 の解説をすると、
式中関数のコンテキストは null だから、中から関数外の変数を参照する場合は
その変数が見えるコンテキスト(この場合は this)を設定してやる必要がある。

あと、switch は予約語だからやめとけ。

285 :名前は開発中のものです。:2011/02/21(月) 01:49:13.85 ID:lhX0r+bD
コンテキストがやっぱり関係してたのですね。
他がちょっとひっかかったのですが、何となく動きが変わりました。
switchの変数名は実際は違うのですが、確かにswitchと書いてたらもっとはまってたと思います。
完全に忘れてました。
ありがとうございます。

286 :名前は開発中のものです。:2011/02/21(月) 22:03:54.89 ID:n1ejhgIG
primaryLayer.onMouseMove をのっとるのは
kag のクラス構成を調べないと危険

287 :名前は開発中のものです。:2011/02/21(月) 23:56:00.34 ID:IhibMUrA
そういうときはデフォルトの onMouseMove をとっておいてオーバーライドするメソッド内で呼べばいい。

288 :名前は開発中のものです。:2011/02/22(火) 00:07:26.34 ID:CxNE+PLH
>>286
のように危険な行為だと認識して
>>287
な行動が出来ないからこそスレに質問投下してるわけで

初心者は最低限、KAG本体に手を出すのは地雷であり最終手段って認識が必要だと思う

289 :名前は開発中のものです。:2011/02/22(火) 00:30:51.37 ID:B8G5DMC7
危ないんですね。
とすると、適当にプライマリレイヤの上に何か作ってそこでやらせた方が良いと言うことでしょうか?
一応そう言う形にしてはいるんですが・・・・

ところで、これは全画面だと誤動作起きますね
また新たな問題がorz

290 :名前は開発中のものです。:2011/02/22(火) 00:49:20.47 ID:CxNE+PLH
全画面のときは拡大率を踏まえた操作が必要だから
YesNoDialog.tjs47行目〜に拡大率云々のコードがあるから、参考になるかも
難しいなら全画面禁止にするのもアリ

291 :名前は開発中のものです。:2011/02/22(火) 10:07:44.22 ID:B8G5DMC7
だいたいやり方はわかったのですが、根本から作り直さないといけないみたいです。
とりあえずフルスクリーン使えないように禁則かけました。

292 :名前は開発中のものです。:2011/02/22(火) 11:50:54.54 ID:B8G5DMC7
フルスクリーン、分かってるつもりでやはりまったくわかっていませんでした。
そもそもYESNOは新しくwindowを作るわけなので必要だと思うのですが、メイン画面が拡大するわけなので中は自動でサイズが変わるものだとばかり思っていたのですが・・・
自分で作ったレイヤーも追従すると思ったので、問題はたぶん.onMouseMoveが機能してないような気がします。
ゲーム中に通常画面>フルスクリーンにすると少し怪しいところもあるのですがたぶんちゃんと動いてるようなのですが、最初からフルスクリーンで起動させると自作の部分だけマウスが機能してないようです。
拡大に追従してないだけだろうかと思ったのですが、>>283のように”ここから右側で反応”とかしても動いてないのでどうしてだろうと色々試して原因を探してます。

293 :名前は開発中のものです。:2011/02/22(火) 13:27:15.79 ID:B8G5DMC7
原因が分かりました。
yesnoの意味も良く解りましたが、これは起動時のみのチェックでいいのでしょうか?

動作中に画面サイズを変更した場合、内部的に勝手に拡大
起動時に画面サイズが違う場合、こちらで拡大率を計算

と言う事なのでしょうか?
起動中に、なんらかの動作で拡大率の計算が必要になるケースはあるのでしょうか?

294 :名前は開発中のものです。:2011/02/22(火) 17:18:36.05 ID:SNRfu77f
全部観て激しく後悔してる俺が通りますよ。
全13話のうち必要な話しは90話くらいに収まる。後は全部つまらんテンドンでお茶を濁して尺稼ぎ。
手法として「こうだよ!」>>ウソぴょん>>「こうだろ!」>>はぁ?違うわよ知らなかったの?>>「じゃぁこれが正しいのか?」>>最初っから何もなかったのよ!と言う感じで物語の提示仕方が最悪。
伏線とか厨丸出しの設定とか辻褄合わせとか一切ぶん投げて、結局どうやったら自殺教団の教祖様が身勝手で我が儘で偽善者全開で他人をどうやって自殺させようかと言う訳の分からん展開。
エロゲライターの質と人間性の悪さをモロに露呈してくれちゃった感じ。

295 :名前は開発中のものです。:2011/02/22(火) 17:19:36.64 ID:SNRfu77f
誤爆ってる。。。。

296 :名前は開発中のものです。:2011/02/22(火) 17:27:04.54 ID:s/oNMyi7
どこのABスレだよ

297 :名前は開発中のものです。:2011/02/22(火) 21:04:44.22 ID:kvTQhI4B
>>292
もうソースごとうpってみろよ

298 :名前は開発中のものです。:2011/02/22(火) 23:36:43.81 ID:UnZ5HLAl
Turbo C++ Explorerの新規ライセンス発行終わってんのか。
デバッガ使ってみようと思った俺涙目だ。
BCCしかねぇ。VCLわかんね。VCL依存排除はまだかね?

299 :名前は開発中のものです。:2011/02/23(水) 00:15:41.40 ID:WLu+ZLPV
まだかねって誰がそんなことやってるの?

300 :名前は開発中のものです。:2011/02/23(水) 00:51:48.18 ID:zdIUpe9v
お見せした方が添削早いと思うのですが、色々デバッグ用のコードとか、テストコードとか、素人丸出しのソースで1000行くらいあってとても恥ずかしくて見せられませんorz

311KB
READ.CGI - 0ch+ BBS 0.7.4 20131106
ぜろちゃんねるプラス