■吉里吉里/KAG/TJS雑談質問スレ■その30 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ノベルゲーム製作ツール吉里吉里/KAGのユーザーが雑談・質問をするスレです。
自作ゲームの進行状況や製作ツールについての話、TJS等の話題もどうぞ。
マルチポストはやめましょう。個人叩きも禁止です。
※スレで質問をするときは※
KAG/TJS/吉里吉里ドキュメント、スレの過去ログ、公式掲示板のログ、
FAQ、Google等で調べてからにしましょう。
努力の形跡が見られないとスルーされがちです。初心者?でも頑張れ!
吉里吉里スレ過去ログ倉庫
ttp://bbs.bokunatu.com/krkr/
吉里吉里2/KAG3雑談質問スレ_過去ログ
ttp://www.geocities.jp/kirikiri_log/
吉里吉里ダウンロードページ
ttp://kikyou.info/tvp/
ダウンロードしたアーカイブに含まれる「KAG System リファレンス」は
初心者にとって最も頼もしい教科書です。何度も繰り返し読みましょう。
■タグリファレンス … KAGの機能が網羅的、辞書的に載っています。
大よその機能(KAGでどんなことが出来るか)は把握しておきましょう。
■Tips/その他 … 陥り易いミスやより高度な使い方への足掛かりになる
数々のTipsが記載されています。
■TJSをもっと使うために
ゲームのインターフェイスをカスタマイズしたい、また
KAGの命令に無いことをしたくなったらまずここを読んでみよう。
必要に応じて>>3-6の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ
■吉里吉里/KAG/TJS雑談質問スレ■その29
http://echo.2ch.net/test/read.cgi/gamedev/1433436610/ 【公式】
kikyou.info
ttp://kikyou.info/
吉里吉里/KAG 掲示板
ttp://kikyou.info/tvp/bbs/
公式掲示板過去ログ検索
ttp://www.kirikiri.info/bbslog/
吉里吉里開発サイト
ttps://sv.kikyou.info/trac/kirikiri/
【ドキュメント】(最新版のオンラインマニュアル)
KAG System リファレンス
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/
吉里吉里2 リファレンス
ttp://devdoc.kikyou.info/tvp/docs/kr2doc/contents/
TJS2 リファレンス
ttp://devdoc.kikyou.info/tvp/docs/tjs2doc/contents/
【FAQ】
逆引きマニュアル
ttp://homepage1.nifty.com/gutchie/kirikiri_kag2/faq.html
【網羅的リンク集】
OUTFOCUS Wiki ブックマーク
ttp://hpcgi1.nifty.com/gutchie/wifky/wifky.pl?p=%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF 【講座】
吉里吉里2/KAG3によるノベルゲーム開発
ttp://homepage1.nifty.com/gutchie/kirikiri_kag3/game_dev.html
Studioついんくる - 吉里吉里2/KAG3講座
ttp://contest2004.thinkquest.jp/tqj2004/70619/subindex.html
RUTA'S GAME - 初心者のための吉里吉里講座
ttp://www.manitoux.net/ruta/game/kiri/
TJSに挑戦!
ttp://www.geocities.co.jp/tjschallenger/
【解説】
Inside KAG3
ttp://hpcgi1.nifty.com/gutchie/wifky/wifky.pl?p=Inside+KAG3
TJS入門
ttp://homepage1.nifty.com/gutchie/kirikiri_kag/tjs_primer.html 【KAGEX】
KAGEX
ttp://ruriko.denpa.org/2006_ca.html#W_%E5%90%89%E9%87%8C%E5%90%89%E9%87%8C
KAGEXのダウンロードの仕方(Subversionリポジトリへのアクセスの仕方)
ttp://kikyou.info/diary/?200610#i4_3
↑の解説の「リポジトリのURL」は↓に変更されています
ttps://sv.kikyou.info/svn/kirikiri2/branches/kag3ex3
※注意
KAGEXを含め、公式以外のプラグインやコードを使用する場合は
それらが作者の好意によって公開されているいうことを理解し、
バグや、吉里吉里のバージョンアップに伴う不都合に対して、
泣いたり怒ったりしないようにしましょう。
また、スレで話題にする時は、プラグイン名や出所を明記しましょう。
使っている人とそうでない人とで、話が噛み合わない場合があります。 【吉里吉里Z】
http://krkrz.github.io/
「吉里吉里Zは、だいたい吉里吉里2と同じものです。
吉里吉里2は開発されてから時間が経過しており、保守や改善を行うに当たって困難な場面に遭遇することが増えてきました。
今までよりも早くリリースされる新しいWindowsやタブレットなどの変化するデバイスに対応するために吉里吉里Zは開発されました。
吉里吉里Zによって開発環境の入手性が改善され、古いものを削除し、開発しやすさが改善されたことで本体の開発速度のスピードアップが可能になりました。」
以上公式より。
特にTJSを触れる中上級者にとって嬉しい吉里吉里Z。ただ「文字コードってなんですか」的な初心者にとっては吉里吉里2→吉里吉里Zの移行が
大変かもしれないので頑張ろう。現在は64bit版も登場。Android版開発中で、さらにマルチプラットフォーム化も計画中のもよう。 Android版他を作ろうとしているのはいいけれど、最初から「互換性を削った制限版」を目指しているのが引っかかって、クラウドファンディングの出資に躊躇してる。
KAGが今のまま(または少し改造しただけ)で動かないのなら、わざわざAndroid上で吉里吉里使う意味がないと思うんだよなー。ティラノなんとかとか、今既にあるAndroid上のプラットフォーム使えばいいじゃん、と思っちゃう。
出資額が大きくなれば実装されるとはいっても、この方針だとどこかで互換性削ってくるんじゃないかなぁと不安。
結局吉里吉里Zも、微妙な互換性の問題で乗り換えできてない人多いし。
俺は同人だからそう思うんだけど、商業だったらまた違うのかな。 自分は逆にKAGを完全に捨てるためにフレームワーク自力で開発してるからその辺りはあんまり気にしてないかなぁ どっちかというと「TJSで色々作れる環境をAndroidにも移植する」と言ったほうが正しいのかもしれない
案外吉里吉里と同じ手軽さで組める環境って少ないからねえ
巨大なツールがないと開発できなかったりインストールするのに依存ライブラリがあれこれあって大変だったり
できたものを配布するときにデカいライブラリがついてきたり >>11 >>13
もしそうだとしたら、やっぱり俺は要らないかなぁ。
どうしてもTJS使いたい!というわけじゃないし。
今までの資産が再利用できないなら、あえて古いものを使い続ける必要ないし。
Unity使ったほうが、楽だし自由度高いし汎用性があるしツブシも効くし。
うん、出資しない決心ついたよ、ありがとう。 Unityでノベルゲーム+α作るって正直大げさすぎる気はするんだよなあ ノベルゲームエンジンが乱立してるのは
開発言語が指定されてることとマルチプラットフォーム対応できないってのが原因だと思ってる
jsのような何かのtjsを嫌ってる人は結構多い でも正直jsは書きにくいことこの上ない
TypeScriptやらが乱立しているのを見てもわかる通り
tjsは基本的にクセのない言語
一方でKAGの文法はなんだかんだでノベルゲーム界の
デファクトスタンダードになってるな jsの新しいやつは、クラスの組み方とかtjsと良く似た形になったよ。時代を良く先取りしてたと言える 新しいjsを気軽に使っても「ゴラァァァァァうちのIE11ではうごかんやろがあああああ」みたいに言われなくなるのはいつですかね (function (){
//hogehoge;
}());
jsのこれほんま気持ち悪くてきらい マルチプラットフォームをうたっているゲーム開発ツールの地味な弱点として
「Windows版がなんか微妙」ってのがあったりするんだよな
もちろんスマホ版も遅い・微妙なの結構おおいし
吉里吉里Z Android版の速度がいい感じなら、Windowsも重視している
メーカーや同人サークルにとって非常にバランスの良い選択になるかもしれない 最近、unityがrenpyをサポートするってニュースがあって
renpy最強じゃね?って思ったんだけど
日本じゃ使ってる人少なすぎて残念
やっぱpythonは日本人に合わないせいかな
そう言いながら自分も吉里吉里使い続けてるわけだが 連敗
縁起わるそう
とにかく「移行するメリット」が大きくないとねえ
最大の原因はAndroidでノベルゲーム作ったところで
今はプレイ人口が大したことないってのがあるんだろうけど
吉里吉里Zは、おそらく吉里吉里Android版があることに
一定のメリットがあるであろう開発者が、一定の資金を
出してくれたことで動き始めたんだろうな だって、VIP板なんかのゲーム製作スレで仲間募って紙芝居ゲを作ったとして、PC持ってる人にしか遊んでもらえないわけじゃん
スマホだけ持ってる人達にも遊んでもらいたいじゃん? その労力を惜しまない人はとっくにティラノスクリプトやらに移行したかと
んで今でもそういう風に頑張る人はフリゲ作家が多い印象で、
吉里吉里みたいな大幅な拡張性は別に要らない人が多そう
現在の吉里吉里はやっぱプロ・セミプロ向けだよねえ 吉里吉里って単なるツールじゃなく開発環境だからな
テンプレ的な紙芝居作るだけならオーバースペック せっかくAndroid上で吉里吉里が動いても、KAGが動かないんなら普通の人はノベルゲームなんて作れない。
KAGの別の実装が出てきてそれを覚えるくらいなら、ティラノスクリプト覚えた方がいい。
KAGを作ればいいじゃん!といわれたら、Unity上の実装作った方が移植が楽。
KAG動かないんだったら、ほとんどのユーザにとっては意味がない。
KAGが動くかどうかが、Android版吉里吉里の普及の鍵になる。
KAG動かないんだったら、絶対使うことはないだろうなぁ。 まあKAG自作は
車輪の再発明だからやりたくないよな 実際のところは商業メーカー+「ノベルゲームというよりアクション性の無い静的ゲームを作りたい高技術系同人サークル」が
恩恵受けるものになると思う やっぱり弱小同人サークルは歯牙にもかけられてないかなぁ…。
やめどきかな… 「ノベルゲームというアクション性の無い性的ゲームを作りたい低技術系同人サークル」は
恩恵受けないの ユーザーとしてはRPGツクールMV辺りと競合する感じになっていくんじゃないかな http://www.kaede-software.com/2016/06/android_9.html
>グラフィックはハードウェア描画用のインターフェイス(クラス)が追加され
2Dゲームとかで良くあるような、毎フレーム画面をクリアして
絵や文字を描画 みたいな感じになるんかな? >>37
で、Layerクラスがなくな(る可能性があ)って、今のKAGは完全に使えなくなる、と。
ただの追加なら歓迎するけど、その分ほかを削るのは賛成できないな というかスマホがPCと比べて遅すぎるというだけの話なのでは KAGだけでいいよ ←既にあるKAGのみ互換のスマホ対応ソフトでいいのでは
TJSも必要だよ ←PC版の仕様のままじゃ無理や
要するにこれだけ 流れ切ってすみません、セーブロードについて質問させてください
吉里吉里2使用の初心者です
配列、辞書配列の保存と読み込みが上手くできません
(Function.ks)
function SaveFunk()
{
}
(start.ks)
f.event=new Dictionary();
f.action=new Array(); 書き込み途中で送信してしまいました
最後まで準備してから、書き込みします 再度書き込みします、セーブロードについて質問させてください
吉里吉里2使用の初心者です
配列、辞書配列の保存と読み込みが上手くできません
;-----------------------
(Function.ks)
function SaveFunk()
{
(Dictionary.assign incontextof f.event)(event);
f.action.assign(action);
}
function LoadFunk()
{
(Dictionary.assign incontextof event)(f.event);
action.assign(f.action);
}
;-----------------------
(start.ks)
f.event=new Dictionary();
f.action=new Array();
;-----------------------
SaveFunk() の時点でテキストに出力して確認してみたところ、
f.eventもf.actionも保存はできているようです
start.ksでの宣言がだめなのかと思い、変更してテスト
start.ksでのf.action=[];をなくして、SaveFunk() をf.action=action;と変えてみると配列
は上手くいきました
ですが、辞書配列の方は上記どちらのやり方でもだめでした
変数の保存読み込みの正しい方法を教えてもらえませんでしょうか ゲーム変数またはシステム変数に保存じゃだめなん?
そういうことじゃなくて技術的なことを知りたいならすまないが俺もわからん! >>45
レスありがとうございます
辞書配列の中に配列を入れていたりで記述が長く、シナリオファイルのあちこちに書き散らかしているのもあって
できればセーブ時にまとめてゲーム変数に代入したかったんです
今回は初めからゲーム変数に変えてみることにします
もし他によい方法ご存知の方おられましたら、よろしくお願いします
気長に待ってますので ・望む動作は何か
・実際の動作はどうか
を最小限のコードと一緒に書くといいかもね ダメだった場合は何がダメだったのかの状況が分からんのでエスパーするしかないよね
>辞書配列の中に配列を入れていたりで記述が長く
とのことなのでassignじゃなくてassignStructを使えば解決、などとエスパーしてみる。
assignだと参照コピーなので元のactionやらeventやらの子配列や辞書を書き換えると
assign先の内容も合わせて変わってしまう罠がある:
var a = [], b = [ %[ hoge:0 ] ];
a.assign(b);
b[0].hoge = 1;
Debug.message(a[0].hoge); // ->1
みたいな。assignStructだとディープコピーなので完全に別物になる
あとはまあ保存可能ラベル(*〜|)を通過してない系の罠かなあ
配列や辞書以外のオブジェクト(クラスインスタンスとか)は
そもそもファイルにセーブできないってのもあるけど、そんなオチはないよね… >>48
レスありがとうございます
最初からゲーム変数に変えたら、読み込みできたようです
色々動かして確認中なので、成功かは分かりませんけど、今回はこれでいこうと思います
ちゃんと読み込んでくれたので嬉しくなって、ゲーム変数に変えたもので失敗分のフォルダを上書きしてしまいました
もし次に何か作る時にも配列は使うと思うので、今のが済んだら確認用のフォルダを作って試してみます
↓答えになってないかもしれませんが、こんな感じでした
【だめだった時の状況】
ラベルのあるファイルを通過毎にセーブ→終了→起動→ロード
・>>44の場合
セーブ後に、ゲーム変数の方をテキストに出力して確認、配列に代入した内容が出力されていた
ロード後は、セーブしたファイルから開始されたが、配列、辞書配列ともに中身はvoid
・>>44の下文章、assignでなく、=で代入しただけの場合
セーブ後に、ゲーム変数の方をテキストに出力して確認、配列に代入した内容が出力されていた
ロード後は、セーブしたラベルから開始されたが、辞書配列の中身がvoid、配列はセーブ時点での内容を読み込み成功
辞書配列は、二次元配列でないものも読み込まれず
【クラスインスタンスについて】
それ自体が分かりません、ググッたんですけど、せっかくの助言を理解できずすみません
保存したいのは、フラグや行動履歴を代入した変数です、下のような形でイベントや行動毎に代入してます
event =%["eventA"=>"敗北","eventB"=>"勝利"];
【assignについて】
assignした後、コピー元に代入した場合、自動的にコピー先にも数値が反映されるということですか?
そういえば、assignで色々試している時に、セーブしてないのにf.eventの数値が変わったことがありました
=で代入したときも似たようなことが起こったような気がします
でもまずは、今のを完成させて、それからassignStructを試してみます >>49
ものすっごい単純なコードを書いてみた
ttp://www1.axfc.net/u/3684310.zip
参考になれば >>50
見にきてよかった
今DLしてきたところです
とりあえずお礼のみ書きにきました
ありがとうございます とりあえずじゃない、とりいそぎです
偉そうな間違いで、すみません
中身これから見させてもらいます >>50
頂いた物を手本に新しいフォルダで試しました、配列、辞書配列ともに読み込んでくれました
前回失敗した理由が分からないので、理解できたとは言い難いのですが、成功したのは嬉しいです
次に作る時は、初めから変数の保存を意識して作ろうと思います
>ものすっごい単純なコードを書いてみた
ifとforしか知らなかった自分でも部分的に読めました、短いのも嬉しかったです
【質問1】
「f.eventに対する操作」と「global.eventに対する操作」の違いが分かりません
検索したら「全ての配列や変数の入っている辞書配列」とありましたが、やっぱり同じもののようなイメージしか湧かず・・・
【質問2】
s(a);にあった 「return @"%[${b.join(', ')}]";」
↑@が分からなくて、もしよければ教えていただきたいです
とにかく成功して嬉しいかったので、お礼言わせてください、ありがとうございました
遅くなってすみません >>53
このレスで説明しようと思ったけど、どうにも長くなったので
ttp://www1.axfc.net/u/3687071.zip
要約すれば
【回答1】
「栞の保存」をしたとき、global.* は保存されない
f.* は保存される
【回答2】
@"a${b}c" は "a" + string(b) + "c" の省略記法
@"a&b;c" でも同じ >>54
今DLしてきました、これから読ませてもらいます
何度も出てきてすみません、そして何度も質問に答えてくださってありがとうございます
お手本のおかげで、保存読み込みの助言の他、新しい便利そうな書き方も知ることができました
きちんと理解できたかは分かりませんが、次作る時に使ってみようと思います
連続の書き込みはよくないようなので、これで消えます
丁寧に教えてくださって、ありがとうございました レンダリング済みフォント作成ツールで
デフォルトの24より大きいサイズのフォントを作って使うとこんな表示になります。
http://www.null-box.com/cgi-bin/so/No_32201.jpg
どこを設定すればいいのでしょうか? すみません、>>57自己解決しました。
toolフォルダの中にデフォルトで入っているツールはダメですね どうやら、高校3年の学園祭という○○で見た何か起こりそうなイベントは儚い夢として消えてしまうようだ。 クリッカブルマップを実装しても1回しかクリックが出来ません
サンプルのシナリオでも同じ現象が起きます unlocklink
ってクリッカブルでも効いたっけ 吉里吉里Zを使い登場人物の多いゲームを作っています。
表示するキャラ名もコロコロ変わるため使い勝手の良いマクロが作りたいです。
理想としては
[名前 ヒーロー]で男主人公の名前の変数を表示する。青で表示。
[名前 ヒロイン]で女主人公の名前の変数を表示する。赤で表示。
[名前 text=○○]で脇役の名前をその場で入力する。
このような事がしたいのですが出来ますでしょうか?アドバイスを頂けたら幸いです。
[macro name= 切れてしまったので連投失礼いたします。また途切れたら申し訳ございません。
[macro name=名前]
;メッセージ1に表示させる、前回までの名前を消す
[current layer=message1][er]
;フォント設定
[font color=0xFBEEBD edge=true edgecolor=0xA63D15][nowait]
;名前入力:空欄にすると地の文になる
[ch text=%text]
;[名前 ヒーロー]と書いた場合は主人公名の変数を表示
[if exp=""]
[font color=0x0000ff]
[emb exp=sf.ヒーロー]
[ endif ]
;フォント設定をデフォルトに戻す
[endnowait][resetfont]
;メッセージ表示させるレイヤを0に戻し、履歴のみ改行する
[current layer=message0][hr]
[endmacro] >>63
今のKAGParserなら、AGタグに指定された引数(値なし)は、マクロ側でmp.引数名がtrueになる。
だから、
[名前 ヒーロー]
と呼ぶマクロなら、
[macro name=名前]
[if exp= わォ確かに切れるな!
[macro name=名前][if exp="mp.ヒーロー"][emb exp=sf.ヒーロー][endif][endmacro]
とかで[名前 ヒーロー]でsf.ヒーローが表示される。
以下参照。
http://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#macroargtf >>65
なるほど!ちゃんと主人公名表示されました有難うございます
小ワザ集も参考にさせて頂きます 質問です。
吉里吉里で←↑↓→の方向キーはどうやって受け取るのでしょうか?
出来ればtjsを使わずkagだけでどうにかしたいのですが…… *loop
[jump target=*左へ cond= "System.getKeyState(VK_LEFT)"]
*左へ
←へ移動の処理
[jump target=*loop]
切れてしまったので連投失礼します。
およそこのような形を想定しているのですがうまくいかないでいます AfterInit.tjsでこんな感じの関数登録して
必要な箇所でOnにするってのが簡単かな。tjsだけど
function myKeyDownHook( key ){
if( f.myKeyDownHook_enabled ) return; // trueで無い時は無視
switch(key){
case VK_LEFT : kag.process( 'first.ks', 'keydown_left' ); return true;
case VK_UP : kag.process( 'first.ks', 'keydown_up' ); return true;
case VK_RIGHT : kag.process( 'first.ks', 'keydown_right' ); return true;
case VK_DOWN : kag.process( 'first.ks', 'keydown_down' ); return true;
}
}
kag.keyDownHook.add( myKeyDownHook ); // 関数を登録
(中略)
関数用いたい場所で
f.myKeyDownHook_enabled = true;
とすればおk このアドバイスは
ID:f1IcStDQにとっては
ショックだった やはりtjs無しは厳しいのでしょうか
[if exp="System.getKeyState(VK_LEFT)"]
処理
[endif]
といった形でも試しているのですがどうにもならず。
そもそもSystem.getKeyStateの使い方を間違えているのでしょうか…… 少し単純化して
*loop
[if exp="System.getKeyState(VK_LEFT)"]
処理
[endif]
[jump target=*loop]
仮にこうした場合、左を押すまでKAGがひたすらループし続けてフリーズしたようになるはず
*loop
[if exp="System.getKeyState(VK_LEFT)"]
処理
[endif]
[s]
とかした場合、if文を通り抜ける「その一瞬」に左を押しているかどうか判断されるだけ
KAGだけではまあむり >>74
ありがとうございます!「その一瞬」の部分をずっと見落としていたようで
*loop
[if exp="System.getKeyState(VK_LEFT)"]
[wait time=1000]
処理
[endif]
[jump target=*loop]
とすれば動きました。が、これはPCへの負荷で問題あるのでしょうか?
System.getKeyState(VK_UP&VK_SPACE)にしたらwaitが全く入らずループするのも怖いですね…… >>71
お返事遅れてすみません、
case VK_LEFT : kag.process( 'first.ks', '*keydown_left' ); return true;
どうにも動かないと思ったら、*を足した上で、呼び出しもtrueとfalseが逆で表記されていたのですね。
本当はTJSで様々な作業をしたいのですが吉里吉里とTJSとで画像座標のズレ込みや、
そもそもTJSでの記述方式が解らない等で往生しておりました。ありがとうございます! [iscript]
x=0
for(var 1=0;1<290;i++){
if(オブジェクト配列[i]==5 && マップ配列[i]==3){
x=x+1
}
}
[endscript]
試行錯誤しているのですが、TJS上でKAGで弄っている配列のデータをそのまま持ってきて〜
というのは不可能なのでしょうか? とりあえずx = 0とかの後にセミコロン打ったらどうかな 二つ以上のレイヤーを同時にトランジション掛けながら移動させたりとかできる? どうしても再生できずエラーになって落ちてしまって先に進めなくなるムービーをスキップするようスクリプトを編集するにはどうしたらいいですか そういやtjsってfinallyないんだよね
なんでだろ function myKeyDownHook( key,shift ){
if( f.myKeyDownHook_enabled ) return; // trueで無い時は無視
switch(key){
case VK_LEFT :
if((key == VK_LEFT ) && (shift & ssCtrl)){
System.inform("S←キーが押されました。");
kag.process( '', '*keydown_left2' ); return true;
}
kag.process( '', '*keydown_left' ); return true;
case VK_UP :
if((key == VK_UP ) && (shift & ssCtrl)){
System.inform("S↑キーが押されました。");
kag.process( '', '*keydown_up2' ); return true;
}
kag.process( '', '*keydown_up' ); return true;
}
}
kag.keyDownHook.add( myKeyDownHook ); // 関数を登録
これでキー入力が出来るようになったのですが、押しっぱなしにすると、どうしても処理がおかしくなってしまいます。
そこでonkeyUpのような、【キーを上げれば移動する】ように改造するにはどうすれば良いのでしょうか? // キー押しっぱで動作が異常になるのはキーダウンごとに kag.processでラベル移動しちゃうのが問題
function myKeyDownHook( key ){
if( !f.myKeyDownHook_enabled ) return; // trueで無い時は無視 ■enabled==trueで動かすのなら要修正
if( f.myKeyDownHook_lock ) return true; // ■キーロック時は無視 returnだけのがいいかも。自分で検証して
switch(key){ // ■キー押下時に一時ロック
case VK_LEFT : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_left' ); return true;
case VK_UP : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_up' ); return true;
case VK_RIGHT : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_right' ); return true;
case VK_DOWN : f.myKeyDownHook_lock=true; kag.process( 'first.ks', '*keydown_down' ); return true;
}
}
kag.keyDownHook.add( myKeyDownHook ); // 関数を登録
//(中略)
//関数用いたい場所で
f.myKeyDownHook_enabled = true; f.myKeyDownHook_lock=false;
// ■キーダウンのkag.processで飛んだ先のラベルで一通り処理が終わったら([s]タグの直前で)
f.myKeyDownHook_lock=false; // 一時ロック解除
// ■移動パート(?)を完全に終了する際に
f.myKeyDownHook_enabled = false; f.myKeyDownHook_lock=false;
// ←↑の同時押しの斜め移動とか、キーリピート対策とかは無理
// 諦めるか、タイマオブジェクトの勉強するしかない ありがとうございます!おかげさまで、ほぼ意図した通りに動くようになりました! 吉里吉里2使用の初心者です(1/3) 改行多すぎと言われたので、分けます
class Mole extends KAGLayer
{
var hit_sound;
// コンストラクタ
function Mole(layer_num, pict_name, mole_x, mole_y)
{
super.KAGLayer(kag, layer_num);//スーパークラス
loadImages(pict_name);//画像
setSizeToImageSize();
setPos(mole_x, mole_y);
absolute=layer_num.absolute+1;
hit_sound = new WaveSoundBuffer(window);//音
hit_sound.open("hit.wav");
visible = true;
}
// デストラクタ
function finalize()
{super.finalize();} 吉里吉里2使用の初心者です(2/3)
// キーイベント
function onKeyDown(key, shift, process=true)
{
//super.onKeyDown(...);//不要?
if(key== VK_UP && visible==true)
{
if(shift == ssRepeat)
{}//何もしない
else
{
hit_sound.play();
return true;
}
}
}
} 吉里吉里2使用の初心者です(3/3)
;-------------------------------
var mole = new Mole(kag.back.layers[1], "up", 0, 0);
;-------------------------------
[backlay][image layer="0" storage="透明.png"][trans (略)][wt]
[s]
;-------------------------------
【やりたいこと】
特定のレイヤが表示されている場合に、onKeyDownで特定の動作をするように記述したいです
Timerで表示非表示をさせたりもしたいので、Moleクラスの中でonKeyDownを処理してしまいたいです
(OUTFOCUSというサイトのもぐら叩きをやりたいです)
【だめだった時の状況】
画像が表示された状態でキーを押しても、効果音がなりません/エラー表示なし 吉里吉里2使用の初心者です(4/3)
分割したら分かりにくくなってしまいました
最序盤で詰まってまして、助言いただきたいです
まずキーイベントからと思い、上記の記述以外は何も書いていません
質問ばかりですみません、よろしくお願いします むしろkag側でキーが押されたときにレイヤの有無をチェックした方が良いと思う
レイヤのキーイベントはフォーカスがないと普通は届かない >>91
レスありがとうございます
>レイヤのキーイベントはフォーカスがないと普通は届かない
上下キーを押したとき、選択肢とかにカーソルが乗っかるあれでしょうか
>kag側でキーが押されたときにレイヤの有無をチェック
getKeyStateとかになるんでしょうか
ググりながら、探ってみようと思います 少し前に、keyDownHookというのもあったんですね
節穴ですみません
>レイヤのキーイベントはフォーカスがないと普通は届かない
でも、onKeyDownがきかなくてonMouseDownがきいた理由は納得できて、すっきりしました
頑張ってみます >>91
mole.visibleを条件に追加した、もぐら叩き用のonKeyDown関数を作って、keyDownHookにaddしました
動きました、これでようやく先に進められます
ありがとうございました すみません、その29でも質問があるようなのですが、
kagexの立ちキャラで、並び順の変更がうまく出来ません。
foreはちゃんと機能しているのですが、backが機能していないようでした・・・・
どこをどう修正すれば良いか、どなたかご存じないでしょうか
ネットであちらこちら探してみたのですがダメでした・・・・ KAGEXのfront/backの実装はちょっとbuggyな感じなんであまり使わない方がいいとは思うけど
ざっと見たところsystem/KAGEnvLevelLayer.tjsのfunction toBack()内の後半部分にある
if (target.absolute < index) {
の「<」を「<=」にしたらどうだろうか?
恐らくabsoluteが同値の場合どちらが手前にくるか不定になるからバグってるんじゃないかと思う
同様にtoFront()の方も同じような処理のところの「>」を「>=」にした方がいいかも?
動作確認してないので直らなかったらすまん >>96
ご回答ありがとうございました。 ですが、ダメでした……
私もそこが問題だろうと思ったのですが、そこのabsoluteがどこからもって来たものか分からず断念してしまいました。(おそらくKAGEnvLevelLayerのセッター? 参照する値なのか、変えようとしてる値そのものなのかわからず)
mainwindow.tjsにもtoBackがあるのですが、こちらは通常の吉里吉里用に残された物でしょうか 流れの途中にすいません。初心者ですが、質問させていただきます。
ここのスレの過去ログにあったコードを用いて、「街〜運命の交差点〜」風TIPSを作成しました。
そこで文章中の単語からリンクしてTIPSを表示し、ワンクリックで下の画面にもどる、という基本は成功しました。
しかし、以下の二点の問題が発生しました。
@TIPSリンク先へ行く→元の画面に戻るを同じ単語で繰り返すと、勝手にリンク元文章のクリック待ちグリフが空白を挟み横へズレていきます。
試しに端までずらしていくと空白のまま改行し、次の文章との間に空行が生じてしまいました。
Aリンク元文章が全部表示し切る前にTIPSリンクをクリックし、下の画面にもどると必ずフリーズしてしまいます。
(これはリンク元文章をノーウェイトにすれば防げます)
以上の二点の原因や防ぐ方法をご存知の方がいらっしゃいましたら、ご助言をお願いします。
用いたのは■吉里吉里/KAG/TJS雑談質問スレ■その19の160〜162です↓
http://pc11.2ch.net/test/read.cgi/gamedev/1254711054/
次のレスで少しだけ改変した自分のコードをコピペします。 macro.ks
[macro name=tipsstart]
[delay speed=nowait]
[locklink]
[history output=false]
[position layer="message1" frame="tips.png" draggable="true" left="0" top="0" opacity="255" left="16" top="16"]
[current layer="message1"]
[position layer="message" visible="true"]
[er]
[endmacro]
;-----------------------------------------------------------
[macro name=tipsend]
[waitclick]
[er]
[position layer="message" visible="false"]
[current layer="message0"]
[history output=true]
[unlocklink]
[delay speed=user]
[endmacro]
;-----------------------------------------------------------
[return] tips.ks
*tips0001
[tipsstart]
(ここにTIPSの内容を書きます)[r]
(ここにTIPSの内容を書きます)[r]
[tipsend]
[return]
first.ks(シナリオ)
*scene1-1|リンクさせたい文章
[link exp="kag.callExtraConductor('tips.ks','*tips0001')" color="0x00ffff"]はじめまして![endlink][r]
ごきげんいかがですか[l][r]
以上です。
どなたか原因、もしくは防ぐ方法が分かりましたらご助言をお願いします。 >>97
入れ替わってるんだけど実は再描画されていないとかって落ちじゃないよね? 素人まるだしな質問で恐縮ですが、
コンフィグファイルのSystem.titleに
タイトル+バージョンで設定しているのですが、
ロードと共に元に戻ってしまいます。
Systemフォルダの中を色々みたのですが、何処でロード時に設定してるか
わかりませんでした。
何となくですが、ロード時に設定してる場所を特定し、
コメントアウト出来れば問題が解決できると思っているのですが
どこで設定しているか教えて頂けませんか? そりゃそうだろ
ロードして過去のを読めばシステムフラグじゃないんだから戻るだろ System.titleはタスクバーに表示されるタイトルで
Window.captionはそのウィンドウのタイトルバーに表示されるタイトルだな
KAG3なら「ウィンドウキャプション」でgrepすればセーブデータに保存・復帰してる場所がわかる >>102
MainWindow.tjsのrestoreFlags()の最後でcaptionを再設定すればおk 久しぶりに吉里吉里のゲーム製作再開したんだけど公式サイト死んでねーか?
今までわからないとこググッて公式のリファレンス読んで解決してたから
これだともう製作出来ないんだけど…
http://kikyou.info/tvp/ 定期的に死ぬからリファレンスはダウンロードしておいたほうがいいよ ちゃんと復旧するのかな?
作者もう吉里吉里に対してやる気なさそうだしこのまま開発終了とかになりそうで怖い 君は吉里吉里で作ることもできるし、作らないこともできる むしろ良い意味でもう枯れてるからこそ
安心して開発できると思うけど
開発中の新しいツールなんかだと
開発終了でお手上げだろう 必要なページや詰まりそうな部分だけ保存してるけど、サイト丸ごととなると専用ソフトが必要になるからやってないんですが
簡単に保存できる方法ってありますか?
違法じゃないやり方で プレイ中の画面のサイズの縮小ってどうやればいいの?
よくあるプレイ中に複数の解像度からユーザーが好きに選んで変更できるやつ
1280x960から800x600に変えたくて下の2つのタグでやってみたけど画面の枠だけしか縮小されない…
ちなみにウィンドウサイズをドラッグで変えるプラグインのWindowResizableは
他のプラグインと干渉してるのか使用してるとバグってゲームが落ちるので
それ以外の方法があれば教えて下さい
[eval exp="kag.setSize(800, 600)"]
[eval exp="kag.setInnerSize(800, 600)"] >>113-114
知りませんでした
>>113は自分には少し難しそうです
調べてみよう、情報ありがとうございます ありゃ、切れちゃった。
>>115
kag.setZoom(kag.innerWidth,kag.scWidth)
で内側の表示サイズが変わる。
WindowResizableが動かないなら、作者の人に聞いてみたらどう?
前聞いたら、びっくりするくらい親切に教えてくれたよ。 >>118
おー!一発で画面の縮小出来ました!ありがとうございます
なぜ落ちるのかわかりませんがWindowResizableの作者の方には一応報告してみます 吉里吉里本家は枯れてるのに関連サイトは親切な人多いよな。
自分もその作者さんに助けてもらったわ
このスレでも度々助けてもらってるし、本当に有難い Android版吉里吉里はサクサク動くならそこそこ使われるでしょ
あとはHTML5版の未来がどうなるか
環境が整って吉里吉里HTML5が良い感じになれば小ネタを
やるのに便利って人はいそう
でも色々鑑みて最低3年後かな 完全に詰まりました。
変数の『仮ポイント』が520だとすると、
[eval exp="f.仮ポイント = f.仮ポイント + 5"]
とすると、結果が何故か、『5205』になります。何故だ……??
今まで、こんな事無かったのに……。
ちなみに、[eval exp="f.仮ポイント = f.仮ポイント - -5"]
とすると、何故か525と正常に表示されます。
とりあえず、出来るからいいんだけど……加算だけ出来ないとか、
訳が分からない。。。 どこかの数字を''で囲んでない?
いい例
[eval exp="f.仮ポイント = 520"]
[eval exp="f.仮ポイント = f.仮ポイント + 5"]
[emb exp="f.仮ポイント"]
ダメな例
[eval exp="f.仮ポイント = '520'"]
[eval exp="f.仮ポイント = f.仮ポイント + 5"]
[emb exp="f.仮ポイント"] >>125
文字列から数字を引こうとする
→吉里吉里「できるだけないだろ! いい加減にしろ! まあ多分数字から数字を引きたかったんやろから配慮したるわ」
文字列に数字を足そうとする
→吉里吉里「文字列に数字を繋いで長い文字列にしたかったんやな、わかるで」 つまり
f.仮ポイント
じゃなくて
+f.仮ポイント
って書けばいいんだよ
…って誰か書いてやれよ。 皆様、レスありがとうございます!
やっぱり、文字列になっちゃってるんですね。。。
その後色々試したのですが、その変数から減算したら、何故か5200(5205-5)と普通に処理出来てたり…w
しかも、その式をコピペで違うksファイルに移動したら、今度は何故か正常に出来てたりとか……w
+ +5にしてみたら、やっぱりダメでしたw
とりあえずは、マイナスの減算でゴリ押ししようと思います。
ありがとうございました! たしか
ins(f.仮ポイント)
で、整数になったんじゃなかったっけ?(もちろんevalの中で)
もうずいぶん使ってないからわからんけど まあそもそも途中で文字列になっちゃうようなコード書くなっていうのはある
おおかたeditタグで入力させて、それを変換せずにそのまま文字列として
使っちゃってるとかじゃないの? 配列の中に入れた文字列をソートしたいのですがこれってぱっと見で間違ってますか?
途中までは上手くソート出来るのですが15個目くらいからソートがおかしくなります
■ [emb exp="sf.num[0][1]"] [r]
■ [emb exp="sf.num[0][2]"] [r]
■ [emb exp="sf.num[0][3]"] [r]
■ [emb exp="sf.num[0][4]"] [r]
■ [emb exp="sf.num[0][5]"] [r]
■ [emb exp="sf.num[0][6]"] [r]
■ [emb exp="sf.num[0][7]"] [r]
■ [emb exp="sf.num[0][8]"] [r]
■ [emb exp="sf.num[0][9]"] [r]
■ [emb exp="sf.num[0][10]"] [r]
■ [emb exp="sf.num[0][11]"] [r]
■ [emb exp="sf.num[0][12]"] [r]
■ [emb exp="sf.num[0][13]"] [r]
■ [emb exp="sf.num[0][14]"] [r]
■ [emb exp="sf.num[0][15]"] [r]
■ [emb exp="sf.num[0][16]"] [r]
■ [emb exp="sf.num[0][17]"] [r]
■ [emb exp="sf.num[0][18]"] [r]
■ [emb exp="sf.num[0][19]"] [r]
■ [emb exp="sf.num[0][20]"] [r]
[iscript]
sf.num[0].sort();
[endscript] 文字列ソートしたいなら引数を指定しなきゃいかんのでは
構文 : sort(<ソート順='+'>, <安定ソートを行うか=false>)
ソート順は以下の文字列のどれかです。昇順では小さい物から大きい物へと並び替えられ、降順はその逆です。省略すると '+' を指定されたと見なされます。
"+" : 昇順 (通常の < 演算子での比較)
"-" : 降順
"0" : 数値による昇順 ( 10,2,1 は 1,2,10 に並び替えられます )
"9" : 数値による降順
"a" : 文字列による昇順 ( "a","c","b" は "a","b","c" に並び替えられます )
"z" : 文字列による降順 >>134
ありがとうございます
sf.num[0].sort('a');で数が増えてもソート出来るようになりました
数が少ないと動作してたから自動的に数字じゃない場合は文字列でソートしてくれてるものだと思いこんでました…… kikyou.infoまだ落ちてるのね
fstat.dllとかaddFontのreadmeってどっかミラーあります? 自己解決、二次配布ページでtrunk見つけました。 kagでならそこそこ作れるレベルなんですけどtjsって今からでも勉強した方がいいですか?
今からtjs勉強するくらいならティラノスクリプトに移行してJavaScript覚えたほうがいいような気もするし >>136
もう遅いですが、今見たら復旧してましたよ
よかった >>138
PCのプラットフォームに残るのであれば
ADV系では今でも吉里吉里が拡張性で最強だから
「今からでも勉強した方がいい」
スマホアプリに移行するつもりなら
「JavaScript覚えたほうがいい」 >>140
tjsは覚えても他に一切応用が効かないから今後の事を考えると
今更覚えるのもどうなんだろうと思ってましたが
まぁJavaScript覚えながらtjsにも手をつけてみます 誰かJavascript→tjs変換器創って
そうするといろんな言語の→Javascript変換器があるからデュフフ 吉里吉里が吉里吉里VMを捨ててLLVMとかWebAssemblyで動くようになればいいのかも
吉里吉里Zの人がWebAssemblyがどうこう言ってた気がする 正直、tjsだろうがjsだろうが必要になったらその都度移行したり調べたり対応するくらいの意思がないと何やっても続かんと思う jsは比較すると動き遅いから期待はあまりしない方がいい 簡単手頃なところが売り
c#でマルチプラットフォーム版だったらよかった それでもpcプラットフォームよりは遅いだろうしtjsは使えないだろうな チェックボックスを設置するところまでは上手く行ったのですが
チェックボックスに入れる変数ってどこに書くんですか?
キャラ1 [checkbox name=0][r]
キャラ2 [checkbox name=0][r]
キャラ3 [checkbox name=0][r]
キャラ4 [checkbox name=0][r]
1番目のチェックボックスがチェックされたらf.sentaku1=1
2番目ならf.sentaku2=1〜って感じで変数入れてcommitタグとか言うやつで
一気に確定させたいんですけど javascriptより早いスクリプト言語ってあったっけ? つーか今はスクリプト言語かどうかあんま関係ない感じがする
特にWebでも中間言語を実行させるような雰囲気になってくるとね [if exp="tf.x == 1"][eval exp="tf.y = 1"][jump target=*1]
[elsif exp="tf.x == 2"][eval exp="tf.y = 2"][jump target=*2]
[endif]
こういう書き方ってやっちゃダメですかね?
これって[endif]通過せずにジャンプしてます? 別にいいけど、endifは通過しないわな
jumpした時点でそこまでのifとかはなかったことにされるから
「飛んだ先にendifがないぞゴラァ」とかは言われない callとreturnみたいにきっかり数合わせなきゃまずいのかと思って
全部書き直そうかと思ってました
大丈夫なら気にせずに放っておきます ttp://homepage1.nifty.com/gutchie/kirikiri_kag2/faq_tjs003.html
このサイトを参考にcsvファイルの読み込みには成功したのですが、ファイル名を変数にする方法はありますか?
; data.csvを読み込む
[eval exp= 切れてしまったので
; data.csvを読み込む [eval exp="tf.arr.load('data.csv')"]
↓
[eval exp="tf.arr.load('f.data.csv')"]
ステージ1ならf.dataに1を代入、ステージ5なら5を代入等
対応したステージ数.csvのファイルを読み込みたいのですが tf.arr.load('data'+f.data+'.csv')
とか
tf.arr.load('data%d.csv'.sprintf(f.data))
とか最終的に文字列になってれば良いのではないかと。
上記の例だと用意するファイルはdata1.csvとかdata5.csvとかね。 >>154
[eval exp="&@'tf.arr.load(¥'${f.data}.csv¥')'"]
kagリファレンスの「エンティティ」
tjsリファレンスの「@つき文字列即値」
を参照するよろし ぐ、ばけた
¥ は、エスケープ用の円記号ね ありがとうございます!おかげで動かせるようになりました! すみません、連続して質問失礼します。キーボードの上下左右を押した際、
グラフィカルボタンにマウスカーソルが勝手に乗るのを回避する手段はありますでしょうか?
上下左右のキーを使ってマップチップ上を移動するゲームを造っているのですが、
グラフィカルボタンを設置した結果キャラクタを動かす度に別のボタンがクリックされる形になってしまい、
グラフィカルボタンにはキーボードが影響を与えないようにしたいのですが…… んなことなくて、[locklink]したまま使うとか
systembutton.ksとかのプラグインでボタン表示するとか
方法はいくらでもあるんじゃね? あ、[locklink]したら表示したボタンを押せなくなるな。すまん
どうしても[button]タグのボタン使うならメッセージレイヤの
focusableをfalseにするとかかなあ。試したおことないけど。
まあそれよか適当なプラグインでボタン表示する方法をお勧めする >>161
>>162
ありがとうございます!おかげさまで
『押しても何も起こらないボタンを用意し、上下左右キーが押されたらそのボタンにフォーカスように設定する』
方法を思い付いたのですが、無理でした。
kag.fore.messages[2].links[0].object.focus();
kag.current.setFocusToLink(0, false);
これらを使ったのですが、どうしても1クリック程度なら変化なしなのですが、少しでも連打を早くしたり、押しっぱなしにするとフォーカスが別ボタンに飛んでしまいます。
プラグインでボタンを造るとキー操作を受け付けない物出来るのでしょうか? というかそもそも上下左右キーはどうやってとってる?
kag.ketDownHookにコールバック登録してtrue返せば
フォーカス移動の前に処理して移動を抑制できると思うけど?
ttp://devdoc.kikyou.info/tvp/docs/kag3doc/contents/TJSTips.html#id275 kag.keyDownHookだった。typo失礼。
function myKeyDownHook(key, shift) {
if (key == VK_LEFT) {
// なんか処理
return true;
}
}
kag.keyDownHook.add(myKeyDownHook);
みたいな。 >>165
ほぼほぼ同じ形です。
//なんか処理 の所に
kag.process( '', '*keydown_left' ); return true;
といったものが入りますが、押しっぱなしにするとすごい勢いでフォーカスが移ってしまいます。
ttp://fast-uploader.com/file/7032479198301/
パスはkirikiriです 様々教えていただいたキーワードで検索した結果。意味もよくわからないまま
f.myKeyDownHook_lock=false;
を入れていたのが原因とわかり、解決しました
ありがとうございます コード見たけどf.myKeyDownHook_lock=trueになってる間に次の入力が来るからでそ
この仕様で対応するならmyKeyDownHook内においてf.myKeyDownHook_enabledが真なら
VK_{LEFT/RIGHT/UP/DOWN}が来たら常にtrueを返さないといけない。
ただしkag.processをするのはf.myKeyDownHook_lockが偽だった時のみ
var myMoveTable = %[
VK_LEFT => "*keydown_left";
VK_UP => "*keydown_up";
VK_RIGHT => "*keydown_right";
VK_DOWN => "*keydown_down";
];
function myKeyDownHook(key ,shift) {
if(!f.myKeyDownHook_enabled) return;
var target = myMoveTable[key];
if (target != "") {
if (!f.myKeyDownHook_lock) {
f.myKeyDownHook_lock = true;
if (shift & ssCtrl) target += "2";
kag.process('', target);
}
return true;
}
}
動作確認してないけど。あくまで一例で。 >>167
というかよく見たら >>84 のコピペか。
意味わからずコード使うのは危険だぞ
f.myKeyDownHook_enabledはtrueならキーフック機能を有効にする
f.myKeyDownHook_lockはtrueならkag.processを無効にするフラグだ。
んで
// ■キーロック時は無視 returnだけのがいいかも。自分で検証して
これ検証してreturn;だけにしたのかもしらんけど
return truenの方が正解だな。
returnだけだと素通ししてメッセージレイヤのキーフォーカスが動いてしまう。 >>169
ありがとうございます
tjs等わからないのにノリと勢いでゲームを作ろうとした結果、何度も質問をしてしまう形になってしまいました ゲームを作ってEXEで出力したのですが、他の人に配布して起動してもらうと、
OS搭載のソフト「windows smart screen」が危険ソフトと認識して妨害します。
プロパティから解除すれば問題なく遊べるのですが、こちら側でそれを回避する方法はないでしょうか?
いちおう、制作ではKKDE2.0αを使用しています。 よく解んないですけど、回避できたらセキュリティホールになりませんか? データをxp3ファイルに書き出せば回避できるかな?と想像
exeとして出力すると全く新しいexeファイルが流通することになるから
そのexeファイルの安全性が評価されていなくて警告が出る JVNがtype-moonとあかべぇそふとの作品をウィルス扱いして以来
吉里吉里は危険ソフト扱いなんだよ >>172-174
新しいexeファイルと認識して、ヤバいかもしれんから止めとけって警告を出しているのですね。
ありがとうございます。 最近のWindowsではインターネットからダウンロードした
未署名のexeを実行しようとすると警告が出るので吉里吉里云々は関係ないね。
根本的に解決するにはコードサイニングするしかない。
それにはめっちゃ金がかかるので同人向きではないって話なので、
結局ユーザー側で回避してもらうしかないのよね 横からですが、自分も気になってたのでありがたい質問と回答でした
>ウイルスソフトの警告 win7アップデートでKKDE起動できなくなったんだが
システム復元以外の解決方法わかるエスパーいませんか? out focusさんが見られなくなってる
あああ・・・ niftyだったから、なくなっちゃったのね。そういうことってあるんだなぁ。 他にも講座等で有名だったけど
今はもうつながらないか繋がっても吉里吉里系は何もないサイトさん増えたよね
時代の流れかな out focusさんのwikiあった
DLが上手くいってなかったのか、ヘルプの内容部分が白紙になって見られなくて困っていました
ここに書くのもおかしいですが、復活してくださってありがとうございます >>183
outfocus wiki 吉里吉里
urlを貼っていいかわからないので、上記の単語で検索してください >>184
サンクス
wikiwikiのが生き残ってたのか ふつうに貼っとこう
スレ移行のときにテンプレ書き換えよろしく
OUTFOCUS Wiki*
ttp://wikiwiki.jp/gutchie/ 吉里吉里で画面のフルスクリーンが出来ない(右上のボタンもロックされてしまった)のですが、
これを修正する方法はありますでしょうか?
1280*720で作ってしまった為、ノートPCだと画面サイズが足りない事があると判明したのですが、
フルスクリーンモード時に画面に合わせ縮小するというのも可能なのでしょうか?
アスペクト比変わらずフルスクリーンにする方法を探しているのですが、何か方法はあるのでしょうか すみません、質問なのですが。
マクロの構文なのですが、これは正しいのでしょうか?
この構文だとパラメータ”立ちキャラ”に何か入っていても、立ちキャラを設定しなくても処理Aに行くと思うのですが。。。。
処理Bに行く条件ってどんなものになるのでしょうか?
[if exp='%立ちキャラ|false']
;処理A
[else]
;処理B
[endif] >>188
その記述だと立ちキャラパラメーターなければ処理Bだろ >>190
そうとも限らなくね? まぁ通る値は極々一部だろうけど [macro name=testA]
[nowait]
[emb exp=mp.hoge]
<
[if exp="%hoge|false"]
1
[else]
0
[endif]
>
[endnowait]
を試した結果↓
https://gyazo.com/4223bc4499c92a3b380a49d2742bb389
何故こうなるのかわからないなら "%"とか "|false" は使わないほうが良いと思うニダ それって実用性はあるんだろうか
どんな時に使うのかよくわからん >>192
ちょっと「ん?」となったけどわかりやすいなこれ OUT FOCAUSさんの wiki見ましたが、もぐら叩きとかタイピングゲームとか、その他の小ネタのやつは削除されてるのでしょうか
もし見かけた方おられましたら情報いただきたいです
よろしくお願いします イヴの日にまでエロゲ開発とか、死にたくならないの? 動画ファイルって●とか▲みたいな複雑なマスクってかけれる? >>198
KAGEXならclipにマスク用の画像設定すればできる
@image layer=動画レイヤ movie=move.mpg clip=マスク画像 最近のパソコンの標準のペイントのサイズが640x480でないから困った いくらなんでも今はペイント用のフリーソフト使おうよ 吉里吉里2で、立ち絵表示をしようと
http://kopacurve.blog33.fc2.com/blog-entry-387.html
のマクロをお借りして立ち絵表示をしようとしたのですが、どうしても足しか映らず、肝心の顔が見ることが出来ません。
コンフィグを弄ってcenter等の設定は出来たのですが……。
ゲーム画面サイズは800×600です。 足しか映らない、ていうのは、画像が上に行ってしまって足だけという意味です、すみません! 見てないがcenterの設定って事はkagex?
envinitのどこか間違ってるんじゃね? EXではないです…
普通にコンフィグで前景レイヤ初期位置の調整だけしたって意味です。すみません
左右の調整は出来ても、前景レイヤ上下の調整は見当たらなくて、立ち絵が上に行ってしまってるんです
マクロお借りしてるサイトにも書かれていないようなので… マクロを使う前にまず自分でimageタグで表示してみたら?
仕組みを理解すれば、コンフィグでも人の作ったマクロでも、自分でマクロを組んで使う事も出来るでしょ 流石にimageタグでは問題なく表示できます…
マクロで表示した時だけ変に表示されてしまうんです… 足しか映らずって800*600の画面より大きい全身ファイルいれて
マクロそのまんまコピペしてtopとleft指定してないってオチじゃないの?
そのサイトの一番最初にも説明書いてある
[ macro name="キャラ" ]
[ image storage=%ch_sto layer=%lay top=%y left=%x visible=true page=back ]
[ endmacro ]
これだけでまずちゃんと映るかやってみ 今信用できる背景素材サイトはどこですかね?
とりあえず背景写真保管の会は危険だ。
どっかクリックしたら変な警告が出るぞ。 そんなパソコン蛾物故割れたみたいなこと言われても
行ってみたらリンク切れ(あるいは接続先のサーバーエラー?)がいくつかあっただけだった >>208
>>202ですが…
xy指定のものは問題なく表示されます
ただ、下部のcenter left rightの指定マクロ部分の時だけおかしくなります。
mp.posのとこですね。
center、left、rightはコンフィグの前景レイヤ部分で設定は出来てるのですが、如何せん下に降りてこず……
サイズを変えてもやはり上に行ってしまってます…… >>211
だからお前さんがpos指定の意味合い自体理解してない=できないで騒いでるだけじゃ
http://devdoc.kikyou.info/tvp/docs/kag3doc/contents/Tags.html
posの部分な
>縦方向の位置については、レイヤの下端は画面の下端に合わせて ( 下側に 詰められて ) 表示されます。
>この属性を指定した場合は left 属性や top 属性は無視されます。 >>212
すみません、多分漸く理解出来ました!
立ち絵の下半身ちょんぎってまた挑戦して見ます!
posの場合、png保存でも立ち絵全体を入れてしまうと足まで、しかも下の空白まで計算されてしまう?のですね?
更にはposとposition同じと思ってましたが違ったようで……お恥ずかしい 俺もしらんかった。。。
cとかlcとか使わないからなぁ。。。
あれは甘え >>202です
お蔭さまで画像表示が綺麗にできました!
本当にありがとうございました。 oggを使おうとしてプラグインを使うタグを入れて上書き保存しようとしたら、
わけのわからないエラーメッセージが出て来た。 >上書き保存しようとしたら
吉里吉里には編集機能はないんだよなあ・・・ なんでどうしようもない馬鹿って「なんかエラーが」「わけの分からないエラーが」みたいに
一番肝心なところを具体的に言わないんだろうな 攻撃力 55
防御力 68
HP 180
こういうのを、数字は右揃え、文字は左揃えにするには、レイヤーを2枚使うしかないですか?
数字が4桁だったり、ステータスが5文字だったりするのを想定込みで リファのLayer.drawTextとfont.getTextWidth読んでわからないなら
[locate x="100" y="100"]使って一項目ずつxy位置を指定するしかない 普通”攻撃力”とかの文字は画像にしてレイヤーにまとめるのがベター 等幅フォントなら文字列処理でなんとかならなくもないんじゃね? そうなんだけどさ、結局BGの上に乗っけるものだから背景に塗り込めちゃった方が楽だし、絵的なデザインできるわけだから見栄えが良い 人生ゲームのようなものを作っています。
1・サイコロを振るボタンを押す
2・道が分岐したらどちらの移動先に行くかを決める
という単純な部分で詰まってしまいました。
サイコロのボタンは表示したままにしておきたいのですが、分岐中はクリックできないようにしたいのですがその方法がわかりません。
また、分岐のボタンを表示中にキーボードの←→キーを押すと、『右の道』『左の道』の他に『サイコロを振る』まで選択出来てしまいます。
分岐ボタン中は←→でどちらの道、というのを選べるようにしたいですがサイコロボタンにキーが行ってしまう、クリックが出来てしまう事を拒否したいのですが良い方法はありませんでしょうか? WEB WAVE LIBの効果音素材がダウンロードできなくなってしまった! WEB WAVE LIBから効果音素材がダウンロードできるようになった♪ ありがとうございます、様々試した結果、少しだけやりたい動作が出来ました。
が、[locklink]を使用すると問答無用で全部使えなくなってしまう為、『いつでも押せるボタンだがキー操作の対象にならない』というような物は可能でしょうか?
また、ボタンAの上でクリック最中、ボタンから別の場所へ移動して離した(ドラッグするような動き)時、ボタンAが押されなかった判定にしたいのですがどのようにすれば良いのでしょうか? グラフィカルボタンについて質問です。
ヒロインの立ち絵画像をボタンにしたヒロイン選択画面を作っているのですが
モノクロ画像のボタンを、カーソルを合わせた時とクリックした時に色付きの画像にするようにしています。
この状態だと一度クリックしたボタン画像が再びモノクロに(標準の画像)戻るのですが、
このまま色付きの状態・・・クリックした時の画像のまま表示させるにはどうしたらいいのでしょうか。
アドバイス頂ければ幸いです。 初めまして。現在吉里吉里2でゲームを作っているのですが、
ロードの方が上手くいかずもうお手上げなので、
こちらの方で良ければ助言を頂ければと思ってます。
今やってる方法がメインのメッセージレイヤ1と2を非表示にして、
メッセージレイヤ3をボタンタグを形成、5でボタンの情報を
乗せる様にしています。
メインのksでメッセージレイヤ1と2を管理して、指定のボタンタグを
押したら別のksに飛んでメッセージレイヤ3と5が表示されロード管理の
ページが出るようになっています。
そのロードのボタンに当てている命令は以下です。
[button graphic=S&L.bmp exp="kag.restoreBookMark(0)"]
症状としては、ページに飛んでロード用のボタンを押すと下記のエラー文が
出る形になります。
色々調べたり、試したのですが上手くいかず途方にくれております。
[エラー文]
スクリプスで例外が発生しました
オブジェクトはすでに無効化されています 続きです。
[コンソール]
YesNoDialog.tjs を読み込みました(5ms)
================================================================================
Scenario loaded : first.ks
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
first.ks : jumped to : *01a-2
処理を開始します
==== An exception occured at buttonlayer.tjs(164)[(function) onMouseUp], VM ip = 16 ====
-- Disassembled VM code --
#(164) Butt_mouseDown = false;
00000013 const %1, *2 // *2 = (int)0
00000016 spd %-2.*0, %1 // *0 = (string)"Butt_mouseDown"
-- Register dump --
%-2=(object)(object 0x0018F8B0:0x00000000) %-1=(object)(object 0x0B88AFF4:0x0B88AFF4)
%0=(void) %1=(int)0 %2=(void)
----------------------------------------------------------------------------------------
スクリプトで例外が発生しました
オブジェクトはすでに無効化されています
trace : immediate event
非フリーセーブで製作していまして、メインの方のテキストの
1ブロック毎にセーブのタグは入れてあります。
すみませんが何卒よろしくお願いいたします。 プレイヤーが自分のアバター(主人公)をキャラメイク出来るゲームを作りたいんですが吉里吉里で作れますか? 素材用意できるかどうかのほうが大きい
あとTJSはいじれないと多分きつい >>235
http://tjs2.info/
ここの第五章 システムボタンの中にある
http://tjs2.info/TJS0607.html
6.7 セーブ/ロード画面の設計
ここを見てみるとセーブ・ロードに関する基本的なことがわかると思う
ボタンは「吉里吉里プラグインとかごった煮的配布場所」で配布されてるKLayers.ksのクラスを継承して作ってるなぁ すみません System.shellExecuteの質問です
吉里吉里上でmifesを起動させようとして以下の記述をしてみましたがうまくいきませんでした
何がいけないのでしょうか
var storage = kag.conductor.curStorage;
var line = kag.conductor.curLine;
System.shellExecute("C:\\Program Files (x86)\\MIFES10\\miw.exe /+%line% %storage%");
ちなみにdosプロンプト上から
"C:\Program Files (x86)\MIFES10\miw.exe" /+5 f:test.txt
これでtest.txtが起動して5行目が表示されました
また
System.shellExecute("C:\\Program Files (x86)\\MIFES10\\miw.exe");
これも起動します。
一つは、storageをフルパスで取得してないせいなのかもしれませんが、正直よくわかりませんでした
どこを直せばよいのでしょうか >>241
自己解決しました
単純にパラメータの設定を間違ってました 吉里吉里(TJS)の処理速度
ってどれくらい早いですかね?
前見た記憶ではけっこう早かった気がしましたが
今ちょっと検索しただけだと具体的な
実行速度の数値が見つかりませんでした
今TJSでゴリゴリ計算するような
特殊なジャンルのプログラムを書いてまして
C言語などで書けば
もっと早いのは分かっているのですが
別言語で書くのはしんどいので
Cに対して100倍以内くらいの差なら
まずTJSで書いてみようと思ってます 自分でそのジャンルのプログラムの簡易版みたいのを書いて計測するのが一番ラク なるほどそうですね
じゃあプロトタイプをまずTJSで書いてみて
そこで遅すぎてお話にならないようであれば
あらためてC言語などで書き直すようにします モブキャラ100人くらいの名前をランダムに生成するのってどんな方法がありますか
f.名前格納[0] = '鈴木'
f.名前格納[1] = '佐藤'
みたいに1000名くらいバーっと書いてシャッフルして上から100人を選ぶ、
みたいな方法は思いつくんですけど、なにかもっといい方法があれば教えて下さい。 そら滅茶苦茶な名前でいいなら適当にランダムな平仮名選んで「えぶ」「こゆ」「れび」とか作れないこたないだろうけど
それじゃ意味ないだろうし
もうちょっと効率良くやりたいなら、「バーっとシャッフルして100人選ぶ」のを「名字1文字目」と「名字2文字目」で
それぞれやって繋げれば1000名もいなくてもそれっぽくなる確率は高い 繋げるのは今ためしにやってみたんですけど、どうもおかしな名前が出過ぎて
しまって無理でした。高安とか日馬とか、たまたまなんですけど相撲取りみたいな
名前が連発で出てきて、諦めました。
名字は、全国で多い名字一覧みたいなページがあったのでそれを使って1000人分
作ろうと思います。
でも名前のほうはなかなかないんですよね。名づけを考えるページで
最近の名前一覧100みたいなのはあるんですけど、今風な名前が多いし、
数も足りなそうだし。 なんのためのシステムか知らんけどBOTの名前付けとかだったら 氏名×名前で適当にくっつければ それなりの数になるんじゃないか
1*5だと 5種類だけど 2*5になれば10だし 5*5なら25になるし 1000人作るにしても 30*30で900になるわけで
日本人だと鈴木とか佐藤とか多いから 配列に鈴木を3個入れたりしてもいいんじゃないか var dic = %[
苗字接頭:['東','西','南','北','大','山','石','森','金','黒'], // 10
苗字接尾:['田','口','山','村','野','川','園','浜','井','本','木','崎','森','小路' ], // 14
苗字単体:['勅使河原'], // 接頭+接尾でなく単体で抽出される苗字
男名前単体:['しんのすけ'],
男名前接頭:['将','翔','優','正','健','良'], // 6
男名前接尾:['男','雄','太','一','助','人'], // 6
女名前単体:['ルイズ'],
女名前接頭:['雪','夏','秋','春','愛','優'], // 6
女名前接尾:['子','絵','奈','華','美',''], // 6
];
function getRandomName( dic, ch = '苗字' ) {
var r = function( arr ) { return arr[ intrandom(arr.count-1) ]; }; // 配列からランダムで要素抽出
if( !intrandom(49) ) return r(dic[ch+'単体']); // 1/50で単体の配列から抽出
for(;;) {
var c0 = r(dic[ch+'接頭']);
var c1 = r(dic[ch+'接尾']);
if( c0 == c1 ) continue; // 山山とか接頭接尾が被る苗字はNG
var nm = c0+c1;
return nm;
}
}
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'男名前') );
for( var i = 0 ; i < 100 ; i++ ) dm( getRandomName(dic,'苗字')+' '+getRandomName(dic,'女名前') );
Debug.console.visible = true;
// これで、10(苗字接頭)*14(苗字接尾)*6(名前接頭)*6(名前接尾)*2(男女)=10080個(単体は除く)
// 配列の充実化は自分で頑張れ >>250
横から失礼します
配列関係のスクリプトは勉強してなかったから勉強にんりました 今や吉里吉里はプロ・セミプロユースがほとんどで
フリー素材とかもoggが大抵一緒にあることを
考えるとねえ 組んでてふと思ったんだけど、
ifの中で直接ジャンプしてそこから強制的にタイトルに戻ったり
call先で強制的にタイトルに戻ったり
あまつさえifの中のcall先で強制的にタイトルに戻ったらまずいのではないかな?
ifやcallがずっとスタックされ続けるよね?タブン……
解決法あるのかねこれ それとも無視して平気? titleタグ踏んだらその辺はリセットされたんじゃないかと思うけど……
最近KAG触っていないので若干自信ないが 吉里吉里講座のホームページが潰れていて高度な事のやり方がわからなくなった。
たとえばタイトル画面の選択肢から栞を読み込ませる方法とか、右クリックで栞にセーブする方法とか。 KAGで扱う部分は初歩的な事だと思うけど
サイトと情報が消えていくのはまずいね
最近過疎ってるのはやっぱ
スマホブームに乗れなかったからか 元々プログラマ文化の強いツールで、初心者迎合はムリにやってたようなところもあるからね 次に吉里吉里ブームが来るとしたら逆にセミプロ・プロユースとしてだと思う
「アマチュアがノベルゲーム作りたい」って方向なら色々別なのが出てきたしねえ KAGまで面倒みたのは大正解だったと思うけど
もしKAGなくてKAGを自力で実装必須だったら
一部の通向けの道具として埋もれてたはず あの時代は吉里吉里でもまあまあ易しいほうだったんだよ
そして「頑張ればFateも作れまっせ」という誘引力がプラスされて
中級者にとってドンピシャだった
アマが凝ったノベルゲーを作りたいという最盛期はもう去っちゃったからね
ノベルに限らず、セミプロやプロが2Dゲームを作る選択肢としての
立ち位置になっていきそう 作る側も若年層はPCよりスマホ触る時間長くて
プログラミング文化が衰退してるのもあるかも くそっ新しいksファイル作って新しいラベル作って栞にセーブしようとすると、
セーブファイルがどうしてもfirstのスタートになってしまう。
ラベルに|もつけて[cm]タグもつけたのに、なぜだ! krkrzって、結局とりあえずこれで動くってSDKは無いのかね
kagexからいろいろ組み直しが多くて、kagex環境そこそこ構築して使えてる俺からしてもハードル高い
誰か作ってある環境ゆずってくれないかな…… 吉里吉里ZはKAGで使うものじゃなくてTJSをゴリゴリ書くものだと思ってる
KAGParserは一応使うけどね 俺もzの環境欲しいな
メモリ関係が改善されているのが羨ましい >>266
つ ttps://github.com/krkrz/kag3
そういう意味じゃない? ttps://github.com/krkrz/kag3_ham
こういうのも 質問です。下記のスクリプトは
履歴で「う」の文字だけがリンクとなると思うのですが、
実際には「うえお」の部分がリンクになります
hactとendhactに囲まれた部分だけをリンクにしたい場合
どうすればいいでしょう?
あい[hact exp="dm(1)"]う[endhact]えお[s] 自己解決。HistoryLayerの
endAction()は改行などでも実行され
そん時にリンク終端部分が更新されてるせいだ
HistoryLayer.tjs, endAction()内の
last.end = font.getTextWidth(currentLine);
の行を
if( last.end === void ) last.end = font.getTextWidth(currentLine);
に修正して直せた メッセージのデータを CSVファイルで用意して、
csvParser.dllプラグインで読み込んでいるんですが、
そのメッセージ(レイヤ)に、インライン画像を入れる方法はないでしょうか?
[graph storage="○○.bmp" char=false]→普通に文字で表示されてしまいます。
できれば、CSVデータの中に画像のリンク先を入れたいのですが… フリーフォントを文章に埋め込みたくて[mappfont]を使ったんですが
文字の大部分が切れたまま表示されてしまいます
フリーフォントだからかと思って
とりあえずMSゴシックをレンダリングしてみたのですが
状況は変わりませんでした
ファイル構造は以下になります
・otherフォルダにレンダリング済みの「フォント名.tft」格納
・pluginフォルダに「addFont.dll」格納
・「Override.tjs」でaddFont.dllを読み込み
・AfterInit.tjsでフォント定義
var fontfilename = "フォント名.tft";
System.addFont(fontfilename, true);
・first.ksでフォント指定
[font face="MS Pゴシック"][mappfont storage="フォント名.tft"]
どこかおかしい部分はありますか?
よろしくお願いします krkrzのdev_multi_platformブランチが
DrawCycleTimer.hがないと言われてビルドできない。
KAGSigmaは一体どうやって開発してるんだーー jin1016さんに遙か彼方からリプするメソッド? ncbind使って吉里吉里プラグイン書くときに
void sample::test( const tjs_char hoge )
{
省略
}
って書くとコンパイル通るけどconst外すとエラー出すようになるのって何でなんでしょうか 萌えるゲーム制作吉里吉里で作る美少女ゲームって本で作ってたんですが選択肢二回目のシナリオを表示するところでわからなくなった data.xp3にstartup.tjsが含まれているにも関わらずstartup.tjsを外部から実行して、system/Initialize.tjs を実行させるのって可能なのかなこれ 化石レスで恐縮コーナー
>>274
ttf(TrueTypeフォント形式)とtft(吉里吉里独自プリレンダ画像フォント形式)をごっちゃにしてない?
拡張子が紛らわしいけどaddFont.dllはttf用、mappfontはtft用なので注意
mappfontを使うときはface名はユーザー独自名にしておいて、
mappfontを呼んだ時のフォントフェイス・サイズ・修飾が合致した場合にそのtftが使われる…だったと思う
>>278
const tjs_char* ではないの?
単なる数値ならconstつける意味があまりないような…? >>280
どういう目的か知らんけど既存の市販等の吉里吉里ゲーのhack目的なら作品次第。
素の吉里吉里なら自前のtpmプラグイン作ってスクリプトより先に外部処理呼ぶとかすればできなくはないと思う
アーカイブ暗号化用の専用のtpmが既にある場合は対策コードが入ってる場合があるので不可かもねー
あと吉里吉里Zとか独自ビルドでtpm自動リンクがカットされてたりする場合もある >>281
const tjs_char* ですね
すいません。 >>283
class sample {
int member;
public:
sample(int);
static void test1(const tjs_char *);
void test2(const tjs_char *);
};
sample::sample(int num) : member(num) { TVPAddLog(ttstr(TJS_W("sample:")) + ttstr(member)); }
void sample::test1(const tjs_char *hoge) { TVPAddLog(ttstr(TJS_W("test1:")) + hoge); }
void sample::test2(const tjs_char *hoge) { TVPAddLog(ttstr(TJS_W("test2:")) + hoge + TJS_W(" / member:") + ttstr(member)); }
NCB_REGISTER_CLASS(sample) {
Constructor<int>(0);
Method(TJS_W("test1"), &Class::test1);
Method(TJS_W("test2"), &Class::test2);
}
/*
Plugins.link("sample.dll");
sample.test1("fuga"); // (※staticメンバ)-> test1:fuga
var test = new sample(123); // -> sample:123
test.test2("hoge"); // -> test2:hoge / member:123
*/
みたいに動くけど、ただどうもconst ttstr&とかの参照はダメみたいだね。(参照じゃなければ普通に通る)
もし自動型変換に拘らないのであればsimplebinderが簡単なので使ってみては?
> ttps://sv.kikyou.info/trac/kirikiri/browser/kirikiri2/trunk/kirikiri2/src/plugins/win32/00_simplebinder
こっち使う場合、tTJSVariantから文字列に変換するときはGetString()呼ぶか、直接 ttstr strvalue(variant) みたいに渡すか、かな
AsString系は参照カウントが絡むので注意しないとリークの原因になるからお勧めしない >>284
ありがとうございます。
simplebinderで試してみます。 @layopt layer=0 visible=true
@video mode=layer
@videolayer channel=1 page=fore layer=0
@openvideo storage=test.wmv
@videosegloop start=0 end=20
@playvideo
過去スレ(その13,レス924)を参考に記述したのですが、上手くいきません
動画を特定のフレーム間でループさせたいのですが、ループせずに動画の最後まで再生されてしまいます
movie.tjsを書き換えたりしなければいけないのでしょうか?
御教示願います
OSはwin10
ツールはKKDEを使用しています メッセージレイヤ0に画像やHPゲージ、いくつかのグラフィカルボタンで選択肢を表示
メッセージレイヤ1で選択肢がそれで良いかの確認・および文章が入る
右クリックで選択前の画面に戻れる
という品を作りたいのですが、どうしても安定した動作にならず、
右クリックでメッセージレイヤ1の枠が表示され、メッセージレイヤ1のボタンが反応しなくなったり、
右クリックサブルーチンが消えてしまったりします。
http://devdoc.kikyou.info/tvp/docs/kag3doc/contents/RClick.html
ここを参考にしているのですが、アドバイスをいただけませんでしょうか? *一番最初
*右クリックで戻ってくる先
[layopt layer=message1 page=fore visible=false]
[current layer=message0 page=fore]
[layopt layer=message0 page=fore visible=true frame="" left=0 top=0 width=800 height=600 marginl=0 margint=0 marginr=0 marginb=0]
■選択肢・レイヤーを表示■
■1ターンで5回の行動を選ぶ。右クリックで選んだ行動をキャンセル出来る■
;右クリックサブルーチン
@rclick call=true storage="rclick.ks" target="*rclick" enabled=true
;何かしら5回クリックするまで戻る
;選択肢を選んだあとの行動
@rclick enabled=false
[layopt layer=message1 page=fore visible=false frame="テキスト枠" left=0 top=600 width=800 height=150 marginl=8 margint=8 marginr=8 marginb=8]
;行動結果の表示★
■選択肢に応じた言動■
[jump target="*一番最初]
288です。おおまかにこのような内容なのですが、一度★までいくと、右クリックでキャンセルした後ボタンは表示されているのに左クリックでボタンの選択が出来なくなってしまいます。
visibleをfalseにしてもメッセージレイヤ1は存在するから下のレイヤがクリック出来ないのでしょうか?その場合、メッセージレイヤ1を削除する方法はありませんでしょうか? dev_multi_platformブランチとKAGSigmaやっと動いたべ。 ここ、人いるのかなあ
bgmその1を再生、終了したらbgmその2を再生、終了したらbgmその1を再生といったような、2つのbgmをループ再生というようなことは出来ますか
2つのbgmを繋げて1つのファイルにしてしまえば簡単なんですが、もし出来るなら出来たほうがいいので、よろしくお願いします TJSで出来ると思うけどそれするより一つのファイルにする方が絶対簡単だと思う やっぱりそうですよねえ
別ファイルのほうが若干都合がいいので、質問させてもらったんですけど、tjsを書いてまでは難しそうなのであきらめます 背景写真保管の会ってサイトから素材をダウンロードしようとすると、
「個人情報が漏れてる」みたいなエラーメッセージとともにうるさい音が出る事ない? .maファイルでのif文の書き方についての質問です。
よろしくお願いします。
aが真 + bかcが真
f.a == 1 && f.b == 1 || f.c == 1
だったらボタン設置という命令を書きたいのですが、
if(f.a == 1 && f.b == 1 || f.c == 1){ 〜これだと動くけれども望んだ判定にはならない
if((f.a == 1) && (f.b == 1 || f.c == 1)){ 〜エラーになる
どう書けば正しく動作してくれるのでしょうか? よろしくお願いします。 >>295
その書き方だと
f.a == 1とf.b == 1 or f.c == 1
って意味になる はず すみません、お陰様で自己解決しました。
お騒がせいたしました。 イヴの日にまでエロゲ開発とか、死にたくならないの? 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
Z4DJB1XXW0 ■ このスレッドは過去ログ倉庫に格納されています