■吉里吉里/KAG/TJS雑談質問スレ■その20at GAMEDEV
■吉里吉里/KAG/TJS雑談質問スレ■その20 - 暇つぶし2ch921:名前は開発中のものです。
10/05/11 02:14:42 ZjiRx+ta
910だけど、どうでもいい質問してごめん。
調べても調べても調べても出てこないと思ったら、
思ったよりずっと昔のレスで驚いた。時が経つのは早いな。
どれだけゲーム制作から遠ざかっていたかが良く分かる。

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

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

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

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

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

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

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

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

928:名前は開発中のものです。
10/05/11 23:37:46 9q2nxYVR
ふと某マジカルプリンセスを思い出した

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

930:名前は開発中のものです。
10/05/16 00:32:59 ue5nl5Ig


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

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

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

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

935:名前は開発中のものです。
10/05/17 14:08:02 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:名前は開発中のものです。
10/05/17 14:22:47 5jFHn2ZI
@eval exp="tf.zanzouda = ++tf.zan"

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

937:名前は開発中のものです。
10/05/17 14:24:49 XdD4kg6Z
うほっ。すまん、ありがと

938:名前は開発中のものです。
10/05/17 14:43:21 XdD4kg6Z
できた。ありがと

939:名前は開発中のものです。
10/05/17 17:22:49 Ofec2mIb
>>935
KAGって、これでエラーが出ないのか……。
いいことなのか悪いことなのかw

940:名前は開発中のものです。
10/05/17 19:05:28 0ER5kOn7
>>939
マクロ作るときに便利らしいぜ。

941:名前は開発中のものです。
10/05/17 20:01:38 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:名前は開発中のものです。
10/05/17 22:21:20 pFZcGK/K
背景(解像度:640x480)にjpgまたはpngのファイルを使おうと思ってます。
どちらの形式が動作的に好ましいですか?

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

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

945:名前は開発中のものです。
10/05/17 23:14:23 bdb7O1Y0
kag.se[0].status === "play"

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

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

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

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

949:名前は開発中のものです。
10/05/18 15:28:46 NkGH8Zep
>>948
URLリンク(devdoc.kikyou.info)
URLリンク(devdoc.kikyou.info)
URLリンク(devdoc.kikyou.info)

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

951:名前は開発中のものです。
10/05/18 23:28:35 MbgWKx5I
>>947
equalsメソッドがあればいいな

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

953:名前は開発中のものです。
10/05/19 01:02:03 sf5Hb2TN
マニュアルを click で検索するぐらいはしたかい?

954:名前は開発中のものです。
10/05/19 01:08:39 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:名前は開発中のものです。
10/05/19 03:57:16 vkTf67ZE
kag.bgm.currentBuffer.position

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

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

957:名前は開発中のものです。
10/05/19 07:24:26 1DjtFC50
>>952
kagのなかにleftclickhook的なのがあったような

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

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

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

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

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

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

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

963:名前は開発中のものです。
10/05/20 18:13:18 nFd3kOKA
そんな症状ってあるのかな?
とりあえずPC環境とエラー状況を
なるべく詳しく書いて公式で質問してみては?

964:名前は開発中のものです。
10/05/20 18:14:06 wmwpk541
この場合の公式はそのゲームの公式であるべきだな
つかここゲーム製作技術板だよな……

965:名前は開発中のものです。
10/05/20 19:03:21 F5MAUXDm
Windows 98 とかじゃないの?

966:名前は開発中のものです。
10/05/20 19:10:11 uKReVZqo
>>961

吉里吉里にマシンを落とすような機能は無い。というかそんなプログラムは普通のアプリでは作れない

・メモリに障害があって、たまたま吉里吉里を使うとそのメモリにアクセスしやすい状況になる
・グラフィックドライバにバグがあって、たまたま吉里吉里を使うとそのバグをふんでしまう
・電源ないしマザーが熱暴走の類をおこしやすい状態になっていて、たまたま吉里吉里を使うと負荷最大時に暴走する

のいずれか。

悪いのは間違い無くおまえさんの環境

とりあえず、
各種ドライバを全部最新にする、メモリチェックツールをつかってメモリに問題が無いか調べる、
吉里吉里を低負荷モードや低メモリモードで動作させて様子を見るぐらいをして、それでも改善されないなら、
あきらめてマシンを更新しかない

967:名前は開発中のものです。
10/05/20 19:15:23 qBfpW60/
とりあえず分かる範囲でスペック書いてみます。

pentium4プロセッサー550 3.40GHz
メモリ512MB
HDD300GB
ディスプレイ17型1280×1024
directX9.0c

OSはXPです。

>>962>>963 吉里吉里のゲームをやってる時しかこういうことが起きないので
なにか原因があるのかと。どこかで相性が悪いのかもしれないです。

>>964 すみません、どこで聞いたらいいかわからなかったので色んな板で吉里吉里で検索したらここに来たんです。


968:名前は開発中のものです。
10/05/20 19:16:46 qBfpW60/
>>966 ありがとうございます。試してみます。

969:名前は開発中のものです。
10/05/20 20:09:12 F5MAUXDm
いきなりツール側を疑ってかかるあたり、かなりの無知っぽいので吉里吉里製じゃなかったってとこまである話だな。

970:名前は開発中のものです。
10/05/20 20:19:33 uKReVZqo
>>967
ついでなのでもひとつ
「BlueScreenView」というアプリをつかうと何が原因でブルースクリーンになったのかを調査できる。
それを見た上で自分の環境のどこがおかしいのかを特定して、それを解消すれば良いだろう。

971:名前は開発中のものです。
10/05/20 21:03:33 xqf5cvXV
ネイティブプラグイン(DLL)のバグの可能性が高いとエスパー。
DirectXとかでハードウェア触る奴はとくに。

つか、某吉里吉里製同人ゲーでその手のブルースクリーン出たとか聞いたことあるぞ。
同人系かネトヲチ板だが。

972:名前は開発中のものです。
10/05/20 22:51:02 54220c2V
URLリンク(www38.atwiki.jp)

クインロゼのことかな?

973:名前は開発中のものです。
10/05/20 23:04:49 xqf5cvXV
>>961 のために付け加えて言えば
吉里吉里は仕様上、サードパーティがC++等で独自拡張のDLLを作成できるようになっている。
で、それらDLLの安全性は(公式のリポジトリにマージされたものを除いて)吉里吉里の管轄外。
何故なら各ゲーム開発者が各自で作って各自の責任で配布してるわけで。

もし吉里吉里本体にその種の致命的な脆弱性があるならば、
ユーザ数からもオープンソースということからも、とっくに発見・周知されているはず。

974:名前は開発中のものです。
10/05/20 23:41:46 qBfpW60/
「BlueScreenView」を使ってみたところdumpfileってのが324ぐらいあって
ピンク色になってたntoskrnl.exeとwin32k.sysが怪しいみたいです。
システムに関係してそうで怖くて手つけられそうにないです。

>>973 吉里吉里がおかしいというより吉里吉里の何かに反応してるんじゃないかなと思うんです。
ゲーム以外は全然普通にPC動くので。

975:名前は開発中のものです。
10/05/21 00:31:57 wi0jobAO
>>974
win32k.sys ブルースクリーンでぐぐれ。たぶんそれだ

976:名前は開発中のものです。
10/05/21 01:25:05 mjqZ0Gdd
>>975 ありがとうございます。
まだ完全に直ったかは分からないですけど↓が原因かもです。
「KB954211」の更新プログラムがあったので。


2008年10月15日のMicrosoft Updateで入ったセキュリティ更新プログラムを導入すると一部のPCでブルースクリーンが多発する現象がありました。確認できたのはWindows XPSP2の入ったPCだけです。業務上OSとSPを統一しているためその他の環境では確認できていません。

マイクロソフト セキュリティ情報 MS08-061 - 重要 : Windows カーネルの脆弱性により、特権が昇格される (954211)

これが導入されると、STOP: 0x000008E Win32k.sysが発生することがあります。VGAドライバとの相性が悪いようでデュアルディスプレイを接続・解除時や、スタンバイ時などディスプレイの状態を変更しようとした時に起こるようです。

対処方法は、
スタート - コントロールパネル(S) - プログラムの追加と削除
 ■更新プログラムの表示(D) ←チェックを入れる
「KB954211」を探し「削除」
Windowsの再起動。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch