■吉里吉里/KAG/TJS雑談質問スレ■その25
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2011/12/16(金) 09:12:24.47ID:abdXwpcP自作ゲームの進行状況や製作ツールについての話、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-5の公式掲示板や講座等を併用してください。
(併用に、紙媒体の参考本が欲しい人は、ダウンロードページにリストがあります)
前スレ ■吉里吉里/KAG/TJS雑談質問スレ■その24
http://toro.2ch.net/test/read.cgi/gamedev/1307083588/
0404名前は開発中のものです。
2012/03/06(火) 23:52:27.62ID:qLqch5LN初心者だから見当外れだったら悪いんだけど…制作していくゲーム内の設定で良いなら、とりあえずここの手順に添って、
ttp://kagru.web.fc2.com/index.html
明日のためにその2、の項で拡張子を書き換えたConfig.tjsを触れば変えれるけど…そういうこととは違う?
0405名前は開発中のものです。
2012/03/07(水) 07:42:49.38ID:olErW+j5下のコードを実行するとコンソールにtrace1とtrace2が表示されるのですが
trace1で停止させるにはどうすればいいのでしょうか?
[iscript]
kag.conductor.sleep();
kag.conductor.interrupt();
kag.process( ,"*test");
[endscript]
[trace exp="0"]
*test
[trace exp="1"]
[s]
[trace exp="2"]
[s]
実際には右クリックメニューを表示する際に一度KAGを止めて、
メニューに応じて該当シナリオファイルにジャンプさせたいのですが、
ジャンプ後の[s]タグで止まってくれずに困っています。
0406sage
2012/03/07(水) 08:38:16.25ID:v7/O0XUO「kirikiri2」の中にある「Tools」を開いて「krkrconf.exe」を実行したら
(ダブルクリックまたは管理者として実行するを選択)『吉里吉里実行ファ
イルの選択』が表示されるのですが、内容は「Tools」の内容と同じで、再び
「krkrconf.exe」を始めとするアイコンが表示されてしまうだけで、表示さ
れる筈の指定されている「krkr.eXe」に辿りつく事ができないのです。
これが堂々巡りで続いてしまっております。
何か勘違いをしている可能性もありますが、何卒お教えを御願いいたします。
>>404
アイコンの変更などをしたいと思っていますので、吉里吉里設定を開いて変
更を考えております。
お答えをありがとうございます。
0407名前は開発中のものです。
2012/03/07(水) 08:45:02.60ID:eHaO3qaNその「吉里吉里実行ファイルの選択」で
指定したいkrkr.eXeの入ってるフォルダを選んでexe指定するんじゃないのか
0408名前は開発中のものです。
2012/03/07(水) 18:38:23.22ID:evKFU447それ、「ツールの使い方が分からない」じゃなくて「Windowsの使い方が分からない」だろ。
あんたは上に[ファイルの場所]のプルダウンとか[1つ上のフォルダへ]とか見えない人間なのか?
直接パスを打ち込んでファイル指定したりできない人間なのか?
ツールにファイルをD&Dして起動したりしたことない人間なのか?
やりかたは既に >>403 に書かれてるぞ。
0409名前は開発中のものです。
2012/03/08(木) 03:19:56.18ID:V1H9mFWqこれ初めて知った
一々フォルダ辿らなくて良かったのか、なんという事だ
0410sage
2012/03/08(木) 07:03:17.97ID:Ki8C0egQ>>409
> [krkr.eXe を krkrconf.exe のアイコンにD&D]
言われて、その方法があるのを思い出しました。
いろんなサイトで一般的に書かれている方法しか頭に無く、その方法を繰り返して
応用と言うか他の手段を試すのを失念していました。
ありがとうございます。
0411名前は開発中のものです。
2012/03/08(木) 22:58:16.78ID:LeaoJI2v弄る部分の取っ掛かりが見つからない。
何かヒントを貰えないだろうか?
0412名前は開発中のものです。
2012/03/08(木) 23:57:15.22ID:f3YDfk0Q0413名前は開発中のものです。
2012/03/09(金) 00:15:20.61ID:kuOGSWSZネイティブプラグインから WinAPI を直に叩いてハック紛いのことをしないと差し替えるのは無理だろうね。
自分でデザインしたいなら >>412 の言うように Config.tjs の menu.visible を false に設定して
TJS なりで独自のメニューを組むのが常套手段。
0414名前は開発中のものです。
2012/03/09(金) 12:07:09.38ID:PJQ4n6y3なるほど、あの表示はOSなのか。
どうりでsystemフォルダを探しても、バーの画像や指定が見つからないわけだ。
ありがとう、ちょっと難しそうだけど非表示にして独自のを実装できるよう頑張ってみるわ。
0415名前は開発中のものです。
2012/03/09(金) 22:48:44.86ID:MwJ8EbQDまたはtjsを使用すれば実装するのは可能なのでしょうか?
例
[eval exp="tf.hoge=true"]
[tf.hogeが偽の時に処理したいもの]←tf.hogeが真なのでまだ処理させない
・
・
・
[eval exp="tf.hoge=false"]←このタイミングで処理を開始する
0416名前は開発中のものです。
2012/03/09(金) 22:57:09.41ID:0dNvDIdz0417名前は開発中のものです。
2012/03/09(金) 23:03:30.24ID:WRzedZvN変数を自分で変えるんならこのときに一緒に呼べばいいんじゃないの?
頻発するんだったらマクロ化しちゃううとか
0418名前は開発中のものです。
2012/03/10(土) 11:55:38.86ID:cEhuOf3Cあれで自作メニューとかやると、常時イベント監視させて、条件が揃うと動くような仕組みになるから
他の人が言うように、変数動かすならそのタイミングで走らせればいいだけだし
キー押された時にするなら、キーにそのイベント割り当てればいい
0419名前は開発中のものです。
2012/03/10(土) 13:16:32.43ID:e93HhPq40420名前は開発中のものです。
2012/03/10(土) 14:30:55.26ID:Inxy9ed10421名前は開発中のものです。
2012/03/10(土) 15:34:03.36ID:RAbamJYg全然速度が上がらないから実測してみたら、CreateThread()や
_beginthreadex()が思いのほか遅く、Core2Duo 2GHzで一回あたり
0.15〜0.2msもかかるから、いろいろあわせて4threadだと生成する
だけで1ms近くかかっていたことがわかった。
スレッドをいちいち生成しないように、スレッドプール作って実行すると、
CPUコア数(HyperThreadは効果薄かった)分くらいまでは大体リニアに
性能が上がった。
今の吉里吉里もマルチスレッド対応といいながら画面分割のたびに
スレッド作ってるから、そのあたりをちょっと変えればもっと性能
出そう。
1msってたいしたことないと思うかもしれないけど、殆どの画面
処理は1ms以下で終わるから、それに比較するといちいちCreateThread()
するのは遅すぎる、という話。
自作dllのマルチスレッド化を考えてる人への参考までに。
0422名前は開発中のものです。
2012/03/10(土) 15:46:29.47ID:qb2cL6Mn吉里吉里本体側に汎用でコア数分のスレッドプールもっておいて、プラグインから
それの呼び出しを要求できるような口があれば一番いいのかな。
0423名前は開発中のものです。
2012/03/10(土) 17:38:07.34ID:RAbamJYgそうそう、作ってる間、そういうのがあればいいのに、と思ってた。
ただ、staticなglobalの関数を呼ぶならともかく、任意のクラスの
任意のメンバ関数を外から呼び出すのが難しいので、結局テンプレートで
作るしかないから、汎用化は難しそう。
void startThread<T>(T *instance, T::*func, void *arg);
みたいなプロトタイプならO.K.だけど、これだとスレッドプールは
クラスTごとに別になってしまうし。
# 別になってもスレッドが寝てるだけならパフォーマンスに影響しない
# からアリだけど。
結局、今はATLのCThreadPoolを継承して、上のような関数を間に
はさんでなんとかしているけれど、やっぱり少し使いにくい…。
0424名前は開発中のものです。
2012/03/10(土) 17:53:53.33ID:upTpN72gというか Boost.Thread を(ry
0425名前は開発中のものです。
2012/03/10(土) 18:23:42.49ID:qb2cL6Mnだけで、任意のクラスのメソッドよびたければラップ関数渡せ、でいいんじゃないかな。
他の機能でもけっこうそのスタイルのものあったと思うし
今の仕事の山が終わったらちと検討して組み込み考えてみるよ。
無事できたら取り込んでもらおう
0426名前は開発中のものです。
2012/03/10(土) 18:40:58.29ID:fmDkgpuF0427名前は開発中のものです。
2012/03/10(土) 18:54:57.87ID:qb2cL6Mn既定値とずれてるときに増減してるだけで、通常はすっとばされるはずだからこれは誤差の範囲じゃないかな……
以下を stub 側に公開すれば事足りそう
GetThreadNum/GetAdaptiveThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask
0428名前は開発中のものです。
2012/03/10(土) 18:56:34.50ID:fmDkgpuF上がらない理由は、スレッド処理が「レイヤの1命令実行単位」
になっているせいで、元々マルチスレッド化される処理の時間
単位がかなり短めなせいです。
特に吉里吉里はその部分はもともとコード最適化されちゃってるんで(^^;
重いアフィン処理を面積の大きいレイヤに対して適用すると理論値に
近い速度が出るようになりますよ。
0429名前は開発中のものです。
2012/03/10(土) 19:04:34.18ID:fmDkgpuF実行する処理の処理ピクセル数から事前予測する関数なんだけど、処理ごとに
負荷がどのくらいかピクセル数に任意の「係数」をかけて計算するという極めて
adhocな実装なので、公開してもあまり意味が無いかも…。
公開するなら GetThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask の4つで。
0430名前は開発中のものです。
2012/03/10(土) 19:15:55.53ID:fmDkgpuFstatic tjs_int GetAdaptiveThreadNum(tjs_int pixelNum, float factor)
{
if (pixelNum >= factor * 1000)
return GetThreadNum();
else
return 1;
}
処理ピクセル数がfactorに1000掛けた値以下なら分割処理するように
してます。
一番軽いFill処理でfactorが150くらいなので、割と大きな面積でない
と分割処理がされないようになってるのがわかるかと思います。
0431名前は開発中のものです。
2012/03/10(土) 19:16:24.36ID:fmDkgpuFマンスの悪化を起こすことなく最大限のパフォーマンス向上を達成する
ため」です。
Corei7などの最近のCPUならこんな回りくどいことをせずに「必ず分割」
してしまっても最大限の高速化効果が得られるんですが、特に古いマルチ
コア環境の場合、スレッドを起こす処理だけでもけっこうなオーバーヘッド
があって、処理面積が小さいのにスレッド処理を行うとむしろパフォー
マンスが悪化するケースが多々ありました。
本当はスレッドを起こす速度を計測したりして個々の環境で敷居値を決定
するべきだったのですが、精密に測定する方法が思いつかなかったので断念。
吉里吉里コアは様々なPC環境で動かされるプログラムなので、古い環境で
実行速度が遅くなるような変更を加えるわけにはいかず、最大公約数的に
現在の実装に落ち着いています。
0432名前は開発中のものです。
2012/03/10(土) 19:24:59.08ID:fmDkgpuFパイプラインを見直してスレッド生かしたまま複数の描画処理を並列
実行出来るようにするべき…なんだけどシングルスレッド前提の
吉里吉里の設計で後付けでそれやるのは難し過ぎました。
吉里吉里3は最初からそういう方針で設計しているようですね。
0433名前は開発中のものです。
2012/03/10(土) 19:30:10.27ID:RAbamJYg説明ありがとう、よくわからなかった部分がものすごくクリアになったよ。
そうか、TVPThreadListはプールのことだったんだね。これは俺の勘違い。
みんなごめんなさい。このあたりソースにコメント一言書いてあれば…。
でも、ExecThreadTask()で呼べるのはやっぱりグローバルな関数だけ
なんだね。そのうえstaticで外から呼べないから、クラスのメンバ関数
実行したいなら、やはり自分で何か書くしかないかー。
> 公開するなら GetThreadNum/BeginThreadtask/ExecThreadTask/EndThreadTask の4つで。
これは期待。そうすれば外付けdllの作者がいろいろやりやすくなるから。
…できればメンバ関数も呼べるようにして下さい。
0434名前は開発中のものです。
2012/03/10(土) 19:33:37.85ID:fmDkgpuF「メンバ関数へのポインタ」は、相互にキャスト不能です。
主に仮想関数の実装の関係。
0435名前は開発中のものです。
2012/03/10(土) 19:34:10.04ID:w0M7k3790436名前は開発中のものです。
2012/03/10(土) 20:16:37.69ID:RAbamJYgあれ、BeginThread()中でTVPThreadListからpop_back()してるから、
スレッド数を減少方向に変更する時は削除してるのではないの?
なので、いろいろ実測してみた。
画面が複雑でいろんなサイズの画像が混在する(処理毎にスレッド数が
異なるようにした)上でレイヤ毎に処理すると、それぞれの処理のために
BeginThread()でスレッドの作成(削除は待たないの?)が頻発してて、
やっぱりここはネックのひとつになってるみたい。スレッドプールがひとつ
しかなくて、これを大きくしたり小さくしたりするからじゃなかろうか。
単純に「小さくしないようにする」だけで、結構マシになった。
スリープ中のスレッドが殆どリソースを食わないなら、いっそ減少させなく
てもいいかもしれない。どうせ今最大8までに制限されてるし。
ほかにデメリットあるかしらん。
> 「メンバ関数へのポインタ」は、相互にキャスト不能です。
そう、だから自前のスレッドプールテンプレート作って、処理(というか
クラス)毎にスレッドプールを別に持った方がいいかな、と思い始めたのです。
幸か不幸か今自前のはそうやって実現しちゃったし、これなら
外付けで実装できるし。「休眠スレッドはリソースを食わない」が
前提だけど。
0437名前は開発中のものです。
2012/03/10(土) 20:37:51.88ID:fmDkgpuF「吉里吉里に指定した描画スレッド数」を基準に決めてるはずなのですが…。
プールの増減が起こるのは理屈としては、drawThreadNumプロパティを変更
した直後の一回のみ、のはず。
0438名前は開発中のものです。
2012/03/10(土) 20:56:25.93ID:RAbamJYg処理が間に挟まってた。はずすと確かに、性能的にはスレッド減少
させても大丈夫になった。
>>437
指摘ありがとう!
はからずもCreateTread()が重いことはまた確認できてしまったので、
自前のdllはやっぱりスレッドプール自前で持つようにしようかなぁ…。
0439名前は開発中のものです。
2012/03/10(土) 21:12:56.64ID:qb2cL6Mn任意のメソッドをC関数にラッピングするだけなら
template<class T>
struct MethodWrapper {
MethodWrapper(T &instance, void (T::*method)()) : instance(instance), method(method) {}
T &instance;
void (T::*method)();
static void callback(void *param) {
MethodWrapper *self = (MethodWrapper*)param;
((self->instance).*(self->method))();
}
};
こういうテンプレート作っておいて
class A;
A a;
MethodWrapper<A> wrap(a, &A::method);
entrycallback(MethodWrapper<A>::callback, &wrap);
こんなかんじで任意のクラスの任意のメソッド(ただし型は固定)に対応できるよ。
真の任意メソッド対応はパラメータのバインド処理も組む必要があるのでさすがにちょっとめんどくさい
それはさておき、公式のほうは公開メソッド化しておいたので、dee さんが次にコンパイルしてくれれば反映されます。
0440名前は開発中のものです。
2012/03/10(土) 23:27:21.03ID:RAbamJYgいろいろありがとう!とても助かったし、勉強になりました!
テンプレートは、そんなかんじのものをすでに実装済み。もうちょっと
カッコよくできないかなー、と考え中…
0441名前は開発中のものです。
2012/03/11(日) 00:26:58.65ID:E/3gazfW広く普及してメンテもほぼ止まってるソースにGPU使いたくないからマルチスレッドなコードを
プロジェクト死ぬまでメンテするとか割りに合わないと思うんだけど。
TJS以上のことをするには吉里吉里は足かせになる。
0442名前は開発中のものです。
2012/03/11(日) 00:31:28.80ID:6cDD+CbbPC版吉里吉里は基本もうこのままでいいんじゃないかなあ、
せいぜい各自のプラグイン拡張くらいで
吉里吉里3が掲げているマルチプラットフォームも
吉里吉里Javaが成功すればできそうだし
0443名前は開発中のものです。
2012/03/11(日) 01:01:35.83ID:riYvEJN5意味不明。
CPUエンジンがマルチコア対応すすめるのはむしろ既定事項じゃん
誰も古いの使うなとか言ってないわけでどう拡張しようと自由だよ
0444名前は開発中のものです。
2012/03/11(日) 01:03:41.99ID:6cDD+Cbb既存の安定コードまでバグ混入してて原因不明の不具合に悩まされる可能性とかは
否定できないかな
0445名前は開発中のものです。
2012/03/11(日) 01:32:42.25ID:riYvEJN5古いの次々消すようなプロジェクトならともかく、履歴も明らかなわけで。
問題になるとしたら、履歴が dee たんちのマシンが死亡したら
ロストする可能性があるのと、コンパイル環境が不自由なことかね>吉里吉里
0446名前は開発中のものです。
2012/03/11(日) 01:33:58.41ID:P9PL1KUIいや、上のは自作dllのマルチスレッド化の話であって、もともと吉里吉里
本体がどうという話じゃないんだよ。たまたま使える関数をexportしてくれたら
便利じゃないか?というだけで。
それと、吉里吉里にGPU使うコード入れる方がよっぽどボード依存とかを長時間
背負うことになるから、それこそやらない方がいいと思う。自作dllに入れるなら
いいと思うけど。すごい基本的な部分だけ、ならなんとか…なるかも?
つついたことがある人ならわかるけど、やっぱりGPU使うのって互換性の
問題が大きいんだよねぇ。なんで3Dいっぱいの市販ゲームってあんまり
そのあたり問題にならないのか、逆に不思議。よっぽどエンジンが頑張って
いるのかなぁ。
0447名前は開発中のものです。
2012/03/11(日) 03:07:25.93ID:tIU3gfm/サウンドノベル形式と、下の方に2・3行のウィンドウ形式って
途中で動的に切り替えできますか?
0448名前は開発中のものです。
2012/03/11(日) 03:19:03.28ID:nRzJafs90449名前は開発中のものです。
2012/03/11(日) 03:39:04.90ID:tIU3gfm/0450名前は開発中のものです。
2012/03/11(日) 03:59:51.38ID:Zl3ckZHs国内の3Dバリバリなゲームってほとんどコンソール向けじゃない?
海外のPCゲーはめっちゃ人と金かけてるイメージ
優秀なエンジンもたくさんあるだろうけど
0451名前は開発中のものです。
2012/03/12(月) 14:57:25.02ID:05jR40rs文字を揃える方法ってありませんか?
0452名前は開発中のものです。
2012/03/12(月) 15:05:39.41ID:8BFIJXpa0453名前は開発中のものです。
2012/03/12(月) 15:12:58.32ID:05jR40rsなるほど。試してみます。ありがとうございました。
0454名前は開発中のものです。
2012/03/14(水) 00:09:36.41ID:aNBBAB530455名前は開発中のものです。
2012/03/14(水) 21:40:48.07ID:aNBBAB53色々試したら、SetEvent()→WaitforMultipleObjects()がやたらと遅かった。
代わりにクリティカルセッションにする(スレッドが一つでも動作している
間はクリティカルセッションにする)と、性能がリニアに上がる。
汚いのは承知の上で、TVPPongEventListを廃止して、
ExecThreadTask()の中、func実行前にTVPRunningThreadCount++ == 0 の時は
クリティカルセッションに入り、ThreadLoop中のループ末尾に
--TVPRunningThreadCount == 0 の時はクリティカルセッションから抜ける
ようにすることで、性能は出そう。
ただ、これだと汚いのと、本当に今の吉里吉里2だけのチューンになるので
どうかな、という気はする。
まぁ、一つの実験結果、ということで。
0456名前は開発中のものです。
2012/03/14(水) 21:43:26.02ID:aNBBAB53EnterCriticalSection(&thread_runnning_cs);
LeaveCriticalSection(&thread_runnning_cs);
が必要。
0457名前は開発中のものです。
2012/03/15(木) 17:38:33.82ID:Pkh0sbP80458名前は開発中のものです。
2012/03/15(木) 20:12:03.61ID:vuxdhmwU0459名前は開発中のものです。
2012/03/16(金) 09:49:45.58ID:qUbbXfrL800*600の画面内に、400*300の画像を用意して、その画像の300*200の部分だけ表示させる、
みたいな。
0460名前は開発中のものです。
2012/03/16(金) 10:27:05.54ID:W1JevHUTimage タグの clipleft, cliptop, clipwidth, clipheight 属性
0461名前は開発中のものです。
2012/03/16(金) 10:36:44.97ID:qUbbXfrLclipの位置を移動するってできますか?
clipleftを0から100に移動
300*200の範囲内で、画像を動いているように見せるような使い方。
0462名前は開発中のものです。
2012/03/16(金) 10:41:04.47ID:W1JevHUT嫁 http://homepage1.nifty.com/gutchie/KAG3Animation.html
0463名前は開発中のものです。
2012/03/16(金) 10:43:05.05ID:qUbbXfrLクリッピングアニメーションでできますね
一枚の画像だからclipを動かすマクロ作らないといけないかなとか
カットイン調べたりとか見当違いの方向やってました
ありがとうございます
0464名前は開発中のものです。
2012/03/16(金) 13:31:17.91ID:aYfO62aWレイヤ合成時の画面に対する単純なクリッピング指定は吉里吉里にはない。
別概念で、imageLeft, imageTop と width, height の調整で描画時のクリッピングは行うこができて、
image タグの clip〜はこれをいじるためのパラメータ。まぎらわしいけど別物
レイヤの配置関係プロパティは以下の3グループでそれぞれ目的が違う。
画像データサイズ imageWidth, imageHeight
画面上での表示領域 left, top, width, height ←この width,height によってクリッピングされる
画像の描画オフセット imageLeft, imageTop
あくまで left, top, width, height 中に画像が出る、という仕様で、
それぞれのプロパティをその範囲に画像が無い領域がでるような値にしようとするとエラーになる
0465名前は開発中のものです。
2012/03/16(金) 13:36:17.50ID:qUbbXfrL画像が多くてパターンも作りたいので一個一個asd作るの大変だなと
結局同レイヤ上で同画像のclipleftとcliptopを60msで変化させて表示し続けるマクロ作りました
すんごい力技だと思うので多用はできないなぁ
0466名前は開発中のものです。
2012/03/16(金) 13:36:25.53ID:aYfO62aW0467名前は開発中のものです。
2012/03/16(金) 13:45:48.79ID:qUbbXfrL*loop
[image storage=&mp.storage layer=1 page=back visible="true" top=200 left=60 clipleft=&tf.left cliptop=&tf.top clipheight=300 clipwidth=200]
[eval exp="tf.left+=1"]
[eval exp="tf.top+=1"]
[jump target="*loop_1"]
みたいなやりかたって邪道なのかな
探してもあんまり見たことない
0468名前は開発中のものです。
2012/03/16(金) 13:52:33.80ID:aYfO62aW邪道というか、image は毎回画像がロードされるので無駄。
asd の clip 指定は画像ロードは一回だけなので軽い。
asd を自動生成するようにするか、あるいは、あー、kag には imageLeft/imageTop をいじる口がでてないのか
Override.tjs に
AnimationLayer.setOptions(elm) = function(elm) {
global.KAGLayer.setOptions(elm);
imageLeft = - +elm.clipleft if elm.clipleft !== void;
imageTop = - +elm.cliptop if elm.cliptop !==void;
};
こんなかんじで口を足してしまって、
[layopt clipleft=&tf.left cliptop=&tf.top]
としていじれるようにして、ロード以降はそれを使うと良い。はみでるとエラーなんで注意な
0469名前は開発中のものです。
2012/03/16(金) 13:54:47.05ID:qUbbXfrLやっぱり無駄ですよね。
Override.tjsのやつやってみます。
0470名前は開発中のものです。
2012/03/16(金) 18:27:44.65ID:vYmwy9q20471名前は開発中のものです。
2012/03/16(金) 19:15:06.06ID:fCgVRa70と表示をしたいのですが、小数点以下は出したくなく四捨五入したいです。
過去ログで「"%.2f".sprintf(n)」と書くと分かったのですが、この[emb]タグの場合どうやって書けばいいのでしょうか?
0472名前は開発中のものです。
2012/03/16(金) 19:40:56.48ID:vYmwy9q2f.tanka=Math.round(f.tanka/2)
0474名前は開発中のものです。
2012/03/16(金) 20:21:40.48ID:WYBPjWoIフォントの利用規約上使えないことが多いね
パラメータなんかを表示するために数字0から9まで並べた画像作って切り出して使うのも
「フォントの一部を取り出して再配布」に当たるのかな
規約読むのに疲れてきた
0475名前は開発中のものです。
2012/03/16(金) 20:24:43.78ID:75jNb/3Gダイナとかは画像化すらダメなことが多いから注意必要だけどさ
レンダリング済みフォントは基本フリーフォントと小塚くらいに
しといたほうがいいかもしれないが
0476名前は開発中のものです。
2012/03/16(金) 21:08:40.09ID:0/OgHmtvフォントデータの改変しての再配布に相当するので多くの場合駄目だよ。0〜9まで、ぐらいだと
判断はわかれそうではあるけど、逆にそのくらいなら自分でまるごとつくったほうがいいんじゃってことにも
基本は明示的にOKとされているもの以外は危険と思っておいたほうがいい
今だと、IPAフォントと、Androidフォント(シーダ/マルベリ) はライセンスはまもれば安全に使えるかな。
0477名前は開発中のものです。
2012/03/16(金) 21:39:48.71ID:WYBPjWoI数字は欧文フォントで何でもOKなの探すとして
和文フォントはやっぱりプレイヤーのパソコンから選ぶのが無難かな
0478名前は開発中のものです。
2012/03/16(金) 21:42:41.80ID:75jNb/3G>IPAフォントと、Androidフォント(シーダ/マルベリ)
は普通に良い感じじゃないか?
0479名前は開発中のものです。
2012/03/16(金) 21:47:59.01ID:0/OgHmtv0480名前は開発中のものです。
2012/03/16(金) 22:08:42.70ID:75jNb/3Gどっかに使用例あるかなあ
0481名前は開発中のものです。
2012/03/16(金) 22:21:36.57ID:WYBPjWoIandroidフォントは恥ずかしながら検索かけても公式の配布ページや利用規約がヒットしなかった
けど読みやすさとデザイン性がいい感じな気がするので見つけられて条件が合っていたら考えてみます
ありがとう
0482名前は開発中のものです。
2012/03/16(金) 22:24:19.63ID:kXMe2GXnお偉い方にはそれが分からんのです!
0483名前は開発中のものです。
2012/03/16(金) 22:25:22.43ID:75jNb/3GMSゴシックでデザインしてみりゃわかる
0484名前は開発中のものです。
2012/03/16(金) 23:31:17.51ID:0/OgHmtvAndroid の公式レポジトリの中にある、んだけど掘りだすのが大変めんどくさいので
debian でパッケになってるのをもらってくるのが楽
ttp://packages.debian.org/ja/source/sid/fonts-motoya-l-cedar
ttp://packages.debian.org/ja/source/sid/fonts-motoya-l-maruberi
ここの tar.xz ファイルを展開するとライセンスファイルと一緒に入ってる。
ライセンスは Apache ライセンスなので、付属してるライセンスファイル (NOTICE ってファイル)
をわかるように同梱するだけでOK。(正確にはライセンス違反したら駄目だけど違反するほうが難しい)
あと、ライセンスファイルだけだとフォントのことってのがわからんので、
readme.txt の類に「Android のモトヤフォント MTLmr3m.ttf と MTLc3m.ttf を入れてある。ライセンスは NOTICE ファイル」
ぐらいの注意書きをいれとくと良いと思われ
0486名前は開発中のものです。
2012/03/18(日) 04:26:42.51ID:aZST+rCx0487名前は開発中のものです。
2012/03/18(日) 04:27:43.73ID:CHhV6jHc0488名前は開発中のものです。
2012/03/18(日) 09:06:46.53ID:XK97Y7Xf無料でコンパイルできる環境ありますか?
0489名前は開発中のものです。
2012/03/18(日) 10:05:51.28ID:5lLAidIN詳しく説明しているサイトがあれば教えてください
0490名前は開発中のものです。
2012/03/18(日) 18:01:28.61ID:2GN3FtAV公式には Borland C++ Builder 5
6, 2006, 2007 でもコンパイル可能ながら、いずれも入手困難。
フリー公開されていた Turbo C++ Exproler (中身は実質2006) でも
コンパイル可能だがこれも公開終了していて新規入手は不可能
それより後の版(2009, 2010, XE, XE2) は確認されてないが、2009から
文字列の扱いが変わってるらしいので手直し無しでは通らない可能性大
0491名前は開発中のものです。
2012/03/18(日) 19:58:07.63ID:XK97Y7Xfよくわかりました。
ありがとうございます。
0492名前は開発中のものです。
2012/03/21(水) 13:44:01.50ID:YVKoeCotc++手に入れたいなら
確かVisual Studio 2005が永久無料配布宣言してなかったけか?
0493名前は開発中のものです。
2012/03/21(水) 13:48:06.12ID:bQ+rGgdwVC対応を試みたのがブランチにあったけど、あれって結局どうなったんだろう。
0494名前は開発中のものです。
2012/03/22(木) 14:02:09.10ID:buc/Dfrm吉里吉里 Java が完成したらそっちいじるのもありだけど、できればオリジナルを触りたいし
なんとか手軽にコンパイルできるようになればいいなぁ
0495名前は開発中のものです。
2012/03/23(金) 03:17:14.16ID:2SN7sC/s0496名前は開発中のものです。
2012/03/23(金) 13:49:22.73ID:F2nH0mNN0497名前は開発中のものです。
2012/03/23(金) 15:13:49.33ID:ZvtcGjV20498名前は開発中のものです。
2012/03/24(土) 04:36:21.24ID:fJxbU7fA0499名前は開発中のものです。
2012/03/28(水) 03:41:48.66ID:SmHTKm/Eどのプロパティをいじればいいんでしょう?(2chの行数制限のため改行をケチってます)
http://www.dotup.org/uploda/www.dotup.org2801900.zip.html
class MainWindow extends Window {
var base; var layer; var sprite; var timer;
function MainWindow( width, height ) {
super.Window();
setSize( width, height ); setInnerSize( width, height );
base = new Layer(this, null);
base.loadImages("back.jpg"); base.setSizeToImageSize();
layer = new Layer(this, base);
layer.setSize( width, height );
layer.fillRect(0,0,width,height,0x3300ff00);
layer.visible = true;
sprite = new Layer(this, base);
sprite.loadImages("sprite.png"); sprite.setSizeToImageSize();
timer = new Timer(timerCallback, '');
}
function startProcess() {
timer.interval = 100; timer.enabled = true;
}
function timerCallback() {
if(Math.random() < 0.5) base.operateRect(Math.random()*800,Math.random()*320,sprite,0,0,32,32,omDodge);
else layer.operateRect(Math.random()*800,Math.random()*320+320,sprite,0,0,32,32,omDodge);
}
}
var win = new MainWindow(800,600);
win.visible = true; win.startProcess();
0500名前は開発中のものです。
2012/03/29(木) 01:17:42.50ID:oWF/x4vEomDodge とかはαが配慮されてないので ltOpaque なレイヤ以外には基本使えない
0501名前は開発中のものです。
2012/03/29(木) 01:56:13.00ID:/+JsHDxVそうだったのか……
ありがとうございます
0502名前は開発中のものです。
2012/03/29(木) 12:45:54.95ID:oWF/x4vE本来不透明な親に対してリアルタイム合成するためのものだからね>合成モード
dest 側で描画前にholdAlpha しておけば合成先の最初から不透明な部分の結果を残すことはできるよ。
パフォーマンスはもちろん落ちるけど
0503名前は開発中のものです。
2012/03/29(木) 12:54:57.71ID:/+JsHDxV色々試してみます
0504名前は開発中のものです。
2012/03/30(金) 10:09:06.91ID:9SB/Id1Wrclickの改造ですが、セーブ・ロード画面に現在のいる場所を追加したくてf.placeを足しました。
うまく表示できたのですが、Aの場所でセーブ後Bの場所に行くと表示がBの場所になってしまいます。
f.placeとして現在の場所を取得してるんだからそりゃそうかとも思いましたが、
どのように他のデータと一緒にf.placeも記録?していけばいいでしょうか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています