■吉里吉里/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/
0124名前は開発中のものです。
2011/02/11(金) 17:04:54ID:gz2Pwne0やっぱりCで組むしか無いのですね。
さすがにCまではやってないです。
また勉強しないといけないんですね・・・・
0125名前は開発中のものです。
2011/02/11(金) 18:08:09ID:2qR1M5vy全ピクセルに処理を施してsetして、それを複数枚…とかやったら、レスポンスが返って来なくなったw
リアルタイムとか先ず無理で、バッチ的に処理するにしても、とても実用に耐えるレベルじゃない。
>>123が言う様に、素直に下位レイヤー叩いた方が良いねぇ。
後、tjsで関数作ってるレベルなら、ポインタの概念とライブラリの中身さえ分かってしまえば、
そんなに難しいモンでもないから、そんなに気負う事もないかと。
0126名前は開発中のものです。
2011/02/11(金) 20:41:46ID:cv99fiNShttps://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/
ここのLayerExなんちゃらのソース見たら参考になるかな?
処理自体は出来てるなら、Cに書き換えて該当部分を差し替えれば動いたりして。
0127122
2011/02/11(金) 21:04:37ID:gz2Pwne0試しにテストしてみましたが、やはり恐ろしく重たいですね・・・・・
確かにちょっと実用的とは言えませんでした。
他の手段を考えないと。
>>126
実は今丁度そのlayerExRasterが同じような処理をしてるようだったので見てたのですが、AsObjectNoAddRefなど重要そうな単語の意味がわからず、
さらにmainImageBufferPitchやmainImageBufferForWrite等の見慣れないプロパティをリファレンスで参照してさらに頭を抱えてました。
あとlayerExRasterを試しにコンパイルしてみようとしたのですが、何か足りないのかエラーでコンパイル出来なくてやはり初歩的な知識くらい無いとダメなのかと思いました。
(xp3filterなどいくつかはコンパイル出来たのでなにか足りないんじゃないかと思いますが )
0128名前は開発中のものです。
2011/02/12(土) 18:41:10ID:S40hiv+3ずっとmifesなんだが。。。。
0129名前は開発中のものです。
2011/02/12(土) 21:37:52ID:M58LL2rf自分に合ったヤツが一番だと思うよ
0130名前は開発中のものです。
2011/02/12(土) 23:10:02ID:FyIidfIA0131名前は開発中のものです。
2011/02/12(土) 23:11:57ID:Z20utz7tKAGのボタンを後からTJSで非表示にしてみたら
クリックは出来ないのにキーボードからは選択できちゃうんだよね
確認してみたらfocusableはちゃんとfalseになってるし
どうしたらいいでしょうか?
MessageLayer.tjsを弄る必要があればどこら辺とか教えて貰えると助かります
0132 冒険の書【Lv=1,xxxP】
2011/02/13(日) 00:40:19ID:Nddze20W秀丸派だけれど、フリーソフト最強ならsakura editor。
広いカスタマイズができる。
mifesはiniファイルを直接弄れるので好きだったけれど、
最近のはムリっぽいね。
秀丸なら吉里吉里用のマクロも幾つかアップされているのがいい。
”秀丸でgrep”というツール(というかinfインストール)を入れることもお勧め。
0133名前は開発中のものです。
2011/02/13(日) 00:50:48ID:chaa4PxZ設定でそこそこの使い勝手は得られるので、替える動機付けに乏しくなる。
0134名前は開発中のものです。
2011/02/13(日) 02:22:42ID:L4kq+ciB0135131
2011/02/13(日) 02:26:33ID:SiQe8osp失礼した
0136名前は開発中のものです。
2011/02/13(日) 12:42:14ID:MiTt5ymI0137名前は開発中のものです。
2011/02/13(日) 16:32:54ID:k84HpGk7タイトルをランダムに表示されるようにしたいのですが、
@eval exp="tf.title=intrandom(1,3)
[if exp="tf.title=1"]
[image storage="title1" layer=base page=fore]
[if exp="tf.title=2"]
[image storage="title2" layer=base page=fore]
[if exp="tf.title=3"]
[image storage="title3" layer=base page=fore]
これですると何度やっても3の画像しか出てきません。
対処法はありますか?
0138名前は開発中のものです。
2011/02/13(日) 16:52:13ID:9RIfJ8I3=だと代入になってしまうので
「3と等しいか判定する」つもりなのだろうけれど「3を代入する」という意味になってる
あと、いろいろ閉じてないような気がするけど。"とか[endif]とか
0139名前は開発中のものです。
2011/02/13(日) 17:10:12ID:k84HpGk7ありがとうございます。=の使い方を勘違いしてました。
0140名前は開発中のものです。
2011/02/13(日) 17:29:04ID:hs/nBGW+今日は暇だから俺がもう少し飛びにくいように書き直してやる
*titke_change
[eval exp="tf.title = intrandom(1,3)"]
[if exp="tf.title == 1"]
[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[if exp="tf.title == 2"]
[image storage="title2" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[if exp="tf.title == 3"]
[image storage="title3" layer=base page=fore]
[jump target=*titke_change_end]
[endif]
[image storage="title1" layer=base page=fore]
[jump target=*titke_change_end]
*titke_change_end
ドヤ顔で出すほどのもんじゃないけどこれで最低限どんな値が返ってきてもとりあえずどれかは表示される。
0141名前は開発中のものです。
2011/02/13(日) 17:45:20ID:9RIfJ8I3気にするんだったらそこじゃないだろ…
気にするなら、なんかの事情でtitle1.jpg等が存在しない場合とかだろ
その場合は存在するもののうちからどれかをかわりに表示するみたいな
0142名前は開発中のものです。
2011/02/13(日) 17:56:19ID:hs/nBGW+ランダムで表示する画像が増減する事は結構あるし、そのときにintrandomの数値を間違って設定する事とか結構あるよ。
あと > < などでやってると、案外=が抜けてたり。
まぁ今回はintrandomの数値だけど、似たような状況はいくらでもあるから、飛びにくく作っておくのは大事。
存在しないものはTJS使わないと吉里吉里タグだけじゃ無理だからさすがに初心者にそれは難解過ぎ。
0143名前は開発中のものです。
2011/02/13(日) 18:17:56ID:9RIfJ8I3バグ防止のために「一致してなきゃならないもの」が存在するのを嫌うのは
非常にもっともなことなのだけれど、
セーフティネットというのはバグの温床(見逃してしまう)でもあるので
その最後のcase defaultに相当するところはcond="!debugmode" とかをつけたいような
まあ思想の問題かと思いますが
というか、バグ防止のためにということであれば、今回については
ファイル名の一覧を ["title1", "title2", "title3"] のような配列で与えることにして
intrandomの範囲も「1,3」などと手動で直接書くのではなく
その配列の要素の数から自動的に取るようにするとかかね
0144名前は開発中のものです。
2011/02/13(日) 18:18:57ID:nsK8f9810145名前は開発中のものです。
2011/02/13(日) 18:21:57ID:9RIfJ8I3「そうかelseやelsifってなかったのか、最近離れてたから記憶があいまいになったな」
って思ってた
0146名前は開発中のものです。
2011/02/13(日) 19:08:53ID:hs/nBGW+たしかにバグの温床にはなりやすいよね。
この条件なら飛ぶはずなのになんで飛ばずに動き続けてるんだろう?とか小一時間ミス探す事が時々ある。
.addで配列に組み込むのが理想だね。
.countで数は取得出来るし、便利なのよね。
ただ、駆け出しの頃は配列は俺にはとても難解だった。
一番使わなくても支障のない物だけど、使えるのと使えないじゃ格段の差が出るのよね。
0147名前は開発中のものです。
2011/02/13(日) 19:12:37ID:hs/nBGW+特にランダム系は経験上かなり不安定な事が多かったせいでついね。
0148名前は開発中のものです。
2011/02/13(日) 23:28:42ID:p1EMTXxBinputタグで表示される画面を吉里吉里画面の中央に表示させることはできるでしょうか?
今現在、ディスプレイ中央に表示されてます。
0149名前は開発中のものです。
2011/02/14(月) 00:20:07ID:vDQ+aOmt>今現在、ディスプレイ中央に表示されてます。
どうしてこうなった!?
0150名前は開発中のものです。
2011/02/14(月) 01:27:12ID:Do9qEUJ10151名前は開発中のものです。
2011/02/14(月) 02:36:11ID:xwSZlZFK自分も質問です。
hiddenMethodに渡す引数と戻り値を教えてください。
0152名前は開発中のものです。
2011/02/14(月) 12:01:36ID:E8mP+/zs音を鳴らす関数のサンプルとしてこう言うのを貰いました。
function Hist_sound( sound,buf )
{
return "kag.se[buf].stop(), kag.se[buf].play(%[ storage : '" + sound + "'])";
}
まず'" + sound + "'と言うのはどう言う事をやってるのでしょうか?
storage名をstringで持とうとしてるのかと思いますが、前後の+の意味と2回括ってる意味がわかりません。
次にreturnの後の""で全体を括ってる意味もわかりませんし、中で""を使ってるのになぜ使えるのかもわかりません。
またこれは中身を見る限り単に音を鳴らしてるだけのようなので、
function Hist_sound( sound,buf )
{
kag.se[buf].stop();
kag.se[buf].play(%[ storage : '" + sound + "']);
}
これではダメなのでしょうか?
0153名前は開発中のものです。
2011/02/14(月) 13:36:49ID:Y5ght41y0154名前は開発中のものです。
2011/02/14(月) 13:51:51ID:E8mP+/zshactに組み込まれていた部分なのでまさにその通りだと思うのですけど、1つは上で書いた疑問は他のところを読んでも出て来ると思いましたので質問だったのですが、
コマンド文字列を作る関数と言うことは、これを呼ばれると一体何をどのように返すのでしょうか? ""等の読み方が分からずどう言う事をしてるのかぼんやりとしか分からないのです。
初歩的で申し訳ありません。
0155名前は開発中のものです。
2011/02/14(月) 14:01:35ID:E8mP+/zsとすると+ sound +と言うのは、soundと言う引数では無く、単に+ sound +と言う文字列を返してるだけなのでしょうか?
すると受け取ったsoundと言う引数はどこに?と言う事になるので、たぶん違うとおもうのですけど。
0156名前は開発中のものです。
2011/02/14(月) 14:05:32ID:Y5ght41y"" は文字列をしめすくくりです。TJSでは便宜のため '' と "" いずれも文字列の記述につかえて、
また、' は "" の中でエスケープせずにつかえて、" は '' の中でエスケープせずに使えます。
詳細は「文字列即値」でリファレンスを検索してください。
そして、その関数は、
"kag.se[buf].stop(), kag.se[buf].play(%[ storage : '"
sound (変数。中身は文字列)
"'])"
の3つの文字列をつなぎあわせようとしています。結果返されるのは
kag.se[buf].stop(), kag.se[buf].play(%[ storage : '渡されたファイル名'])
という文字列です。
なお単にならすだけなら kag.se[buf].play(%[ storage :sound]); で良いです
余談ですがこれバグってますよね。buf が展開されてません。そのままだとたぶんエラーでしょう。もしかしたら
たまたま buf という変数があって鳴ってるかもしれませんが……。その関数くれた人とやらに確認したほうがよいです
もう一つ余談ですが、文字列への変数展開はTJSでは次のように書くことができます。詳細は @ でTJSリファレンスを検索のこと。
return @"kag.se[${buf}].stop(), kag.se[${buf}].play(%[ storage : '${sound}'])";
0157名前は開発中のものです。
2011/02/14(月) 14:42:23ID:E8mP+/zs細かい説明と指摘本当にありがとうございます。
おっしゃる通りに、貰った物がこちらでは鳴らなくて、どこが悪いんだろうかと探してる時にこの関数を見つけて読み方が分からずこのスレに泣きついてしまいました。
相手側の方ではこれで鳴ってるそうなので、違う物を渡されたのか、それとも何か勘違いしてる可能性が高そうです。
本当に助かりました。
これからもう一度相手側に確認取ってみます。
ありがとうございました。
0158名前は開発中のものです。
2011/02/14(月) 15:39:50ID:E8mP+/zsこれから試すつもりですけど、たぶんこうじゃないとダメぽいですね。
returnの後の”に対応する”が;の前の奴だと勘違いしたまま+の前の奴が対応してた"だと思いもしなかった自分のバカバカ。
0159名前は開発中のものです。
2011/02/14(月) 21:11:18ID:RqYc83Xu簡単に乗っ取れるよね、それ。
0160名前は開発中のものです。
2011/02/14(月) 23:20:56ID:0qKfv/Yz縁取り文字使用時、連続ダッシュ(――)で字間に縁の色が入ってしまうのですが
これを綺麗に繋ぐようにする方法ってないでしょうか?
字間を調整してみても、後ろ側の縁に塗りつぶされてしまうようなのです。
0161名前は開発中のものです。
2011/02/15(火) 02:04:40ID:4LFE3fe/「■複数の横棒(───)を書く時は」
ttp://www.geocities.jp/keep_creating/DojinDOC/kirikiriSmallTips.html#multibar
…ってそのものずばりだと思うが如何。
0162名前は開発中のものです。
2011/02/15(火) 03:04:43ID:Rse+nHdSそれに、いちいちばらすと文字列のサイズとか前進幅とか狂うしさ。
0163名前は開発中のものです。
2011/02/15(火) 06:59:25ID:Ag0aN+GZ0164名前は開発中のものです。
2011/02/15(火) 08:12:32ID:Dav6HMUs有り難うございます。
お陰様で理想通りの表次になりました。
0165名前は開発中のものです。
2011/02/15(火) 08:13:19ID:Dav6HMUsすみません。
0166名前は開発中のものです。
2011/02/15(火) 14:36:48ID:OjWV4otJ複数の選択肢の中から2つ選ぶと次に進むという構成で
1つ目の選択肢を選んで選択肢群に戻ってきた時に
その選んだ選択肢を再度選べないようにするにはどうしたらよいでしょうか?
タグリファレンスを見ながらなんとかやって来たのですが
本当に分からなくなってしまいました
ご教授よろしくお願いします。
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上では無理って事?
俺も初心者に毛が生えた程度でスマン
■ このスレッドは過去ログ倉庫に格納されています