■吉里吉里/KAG/TJS雑談質問スレ■その28
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/02/04(火) 17:45:20.15ID:zUepSYWa自作ゲームの進行状況や製作ツールについての話、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雑談質問スレ■その27
http://toro.2ch.net/test/read.cgi/gamedev/1358185635/
0630621
2015/01/25(日) 21:23:14.59ID:SJZH/4BKそうですね。確かに自分が把握してないところがあるのは後々困りますよね。
バックアップ取ってあるので、元に戻して、もう一度組み込んでみます。
ログを表示するプラグインがうまくいかなくて、全部コピーしちゃーえーって思ったんですよね。
まあ、それは危険過ぎますね。
いろいろみんなアドバイスくれてありがとうでした。
0631621
2015/01/25(日) 21:46:20.72ID:SJZH/4BK下記のように読み込んだら、ウインドウが最下層に下がることが分かりました。
// WindowResizable.ks の前提プラグイン
Plugins.link("windowEx.dll");
まあ、最下層に表示されるっていっても常にではなく起動時だけのですが、気持ち悪いですね。
ホームページの使い方の説明書きみてもそのようなことは書いてないなあ。
0632名前は開発中のものです。
2015/01/25(日) 22:51:35.65ID:+vfsdOaP原因が一つ特定できて良かったね。
あとは読み込む箇所の順番っすな。
ところで、もしかして吉里吉里の再起動を掛けている箇所ない?
0633621
2015/01/25(日) 23:05:16.90ID:SJZH/4BKいやー助かりました。
実はOveride.tjsでプラグインを読み込んだのは初めてなんです。
そのせいかなーと思ったり。
他にpluginフォルダにはwuvorbis.tpmとgetSample.tpmがあります。
tpmにすれば何も書かなくても読み込んでくれて楽なのですが、これが問題なのでしょうか?
吉里吉里の再起動はかけてないと思います。
0634名前は開発中のものです。
2015/01/25(日) 23:27:28.70ID:+vfsdOaPためしに、Overide.tjs での windowEx.dll 読み込みをコメントアウトして
代わりに AfterInit.tjs で読み込んでみたらどうなりますか?
Overide.tjs だと new KAGWindow() の前で読み込むことになるので、
それでウィンドウの初期表示位置が影響を受けちゃってるんじゃないかなあ
という予想です。
0635634
2015/01/25(日) 23:30:35.16ID:+vfsdOaP関係ないかもねえ。すまんです。
0636名前は開発中のものです。
2015/01/25(日) 23:46:22.09ID:+vfsdOaP突っ込んでるプラグインってたぶんKAICHOさんのとこのだと思うんですが、
それだったらちゃんと動くはずなので、念のため吉里吉里のバージョンを
確認してみてください。
最新の 2.32.2.426 じゃなかったらそれに更新ってことで。
0637名前は開発中のものです。
2015/01/26(月) 00:18:31.07ID:FHaLWAdG色々ありがとうございます!!
今気付いたのですが、windowが最下層になるのではなかったです。
エクスプローラーで起動したらそのエクスプローラーの一つ下の断層に行くでした。
他のウインドウを開いてなかったの気付きませんでした。すいません。
吉里吉里2の最新版を入れ直してみましたが、やっぱり駄目でした。
AfterInit.tjsで読み込んでみると、WindowResizable.ksがエラーを起こしちゃいます。
そうです! KAICHOさんのプラグインを突っ込んでます。
WindowResizable.ksを読み込まないと、windowsが下に下がることもないのですが、
ためしにSavedataの中身とか消してもだめです。
0638名前は開発中のものです。
2015/01/26(月) 01:06:42.28ID:HMpLi8Y2KAICHOさんの全部入りサンプルだと LoadMacros.ks で各プラグインを読み込んでて
WindowResizable.ks もそこで読み込んでるかと思うのですが、そこから別のKSファイルに
コピペしたのかな?
とりあえず、吉里吉里のWindowクラスにbringToFront()ってのがあるんで、
[call storage="WindowResizable.ks"] の直後に
[eval exp="kag.bringToFront()"] を入れてみてください。
>>629さんの方法です。これは応急処置なんで、根本的な解決にはなってないけど
まあとりあえずってことでw
参考
http://devdoc.kikyou.info/tvp/docs/kr2doc/contents/
http://devdoc.kikyou.info/tvp/docs/kr2doc/contents/f_Window.html
0639名前は開発中のものです。
2015/01/26(月) 01:37:53.20ID:FHaLWAdGありがとうございます!!
はい、全部入りサンプルでは LoadMacros.ksだと思いますが、
何が入っているか分からないMacroフォルダは全部消しておきました。
そのため、first.ksに書いてます。
[call storage="WindowResizable.ks"]
の直前に
[eval exp="kag.bringToFront()"]
と書いてみたのですが、これでもなります(汗)
もしや、[call storage="WindowResizable.ks"]の呼び出しのタイミングが悪いとかでしょうか?
0640名前は開発中のものです。
2015/01/26(月) 01:43:51.66ID:HMpLi8Y2[eval exp="kag.bringToFront()"] は直前じゃなくて直後に呼ぶんですがそれでもダメ?
ウィンドウを最前面に持ってくる関数なんですが……。
0641名前は開発中のものです。
2015/01/26(月) 02:39:59.71ID:FHaLWAdGあ、すいません。直後に呼び出してました。
日本語がおかしくて非常に申し訳ないです。
つまりこう書いているんです。
[call storage="WindowResizable.ks"]
[eval exp="kag.bringToFront()"]
0642名前は開発中のものです。
2015/01/27(火) 10:37:15.28ID:gl9hWXuffore.baseとかじゃなく、新しく作ればいいのかなーと思ったけど 結局辿って行くとKAGLayer、そしてその先は見つからない・・・
そこでトランジションの方を作ろうとしてるんですが、 タイマー作って、今あるレイヤーの倍のレイヤーを一時的に用意して、不透明度をさげる ここまではいいんですが
表と裏をする時に、同処理するのか見ていた所GraphicLayerのatEndOfTransitionで
super.exchangeInfo(); //←これ
window.exchangeForeBack();
window.callExchangeInfo();
ってなってるんです、kagでforを使って呼び出してる理由はなんとなく分かるんですが、何故その前にsuperを使って単体のexchangeしてるんですか(´・ω・`)?
0643名前は開発中のものです。
2015/01/27(火) 12:32:58.70ID:GMOwKNJ7kag.callExchangeInfo() で処理されてる対象には fore.base / back.base は含まれてないじゃろ
自分のを自前で呼んでる
0644名前は開発中のものです。
2015/01/28(水) 11:33:03.53ID:YlGWHjQL分かったような分からないようなOTL
superの所は通常処理でむしろ ここからでは操作出来ない前景レイヤを、親のオブジェクト?を使い裏表を入れ替える処理してる感じですかね
うーんトランジョン難しい・・・
0645名前は開発中のものです。
2015/01/28(水) 13:01:07.22ID:WnguwETM構造的には、全レイヤの exchangeInfo() をよばせようとしてて、
前景レイヤの分は親にまかせてる
if(withchildren) の else 側では自分だけを exchangeInfo() してる
class BaseLayer で function exchangeInfo() を拡張してしまっていて、
これが withchildren の時には余分な処理を含んでいるから
super.exchangeInfo() として呼んでるんだけど、
呼び出してる箇所はここしかないんだから、拡張せずに else 側の
exchangeInfo() のとこに window.swapBaseLayer() を外だししてしまったほうが
見通しが良いコードな気はする。それなら super. を付ける必要がないわけで
exchangeInfo() でやってるのは、参照したときの整合が取れるよに、
名前とカーソルを表裏でいれかえてるだけで、
トランジションと本質的にはなんら関係ないので、
時前で単体レイヤでなんか処理しようとかの場合はあんま気にしなくてもいい
0646名前は開発中のものです。
2015/01/29(木) 20:07:05.32ID:i8w+Plbzpngで画像ファイル作って loadImages( %[ colorkey : 0xRRGGBB ] );
で表示するという無茶な手段しか思いつかない……(´;ω;`)
0647名前は開発中のものです。
2015/01/29(木) 20:22:40.08ID:i8w+Plbz.paint( x, y, 0, 0xff, tpprOpaque ); // 連続するカラーコードの範囲を塗りつぶし。
みたいなのも試したがあれはfaceに関わらず(?)黒で塗りつぶすから無理だった……(´;ω;`)
0648名前は開発中のものです。
2015/01/29(木) 22:47:58.17ID:OnjvH6d60649名前は開発中のものです。
2015/01/29(木) 22:59:42.60ID:zX/xKsQp0650名前は開発中のものです。
2015/01/30(金) 12:38:23.64ID:1m6Q8dNi縦横を for で回して Layer.getMainPixel で調べて setMaskPixel で消す
間違いなく重いけど用は満たせる
性能必要なら自前でプラグインつくるしかないね
LayerExBtoA の fillByProvince
LayerExSave の clearAlpha
とかが目的の処理に近いのでコピペして改造すればいいかと
0651名前は開発中のものです。
2015/01/30(金) 20:29:06.90ID:s3wHeVDmプログラミング的に正攻法のやり方は
C/C++でDLLを書くことだろうけど
めんどくさいからやりたくないよな
そこで吉里吉里で表示する前にあらかじめ
ペイントソフトで画像を処理しておく手もある
もしペイントソフトだとできないようなら
その処理専用の自作ミドルソフトを作る
この言語はTJSでも何でもいい
結局TJS使って同じことやるんだけど
こうやって先に処理した画像を保存
(自前処理かスクショソフトで)
しておけばぜんぜん重くならない
ようするにプリレンダリングするテクニック
もしリアルタイム処理が不可避なら
やっぱDLL書くか重くてもプラグインだけど
0652名前は開発中のものです。
2015/01/31(土) 09:37:02.80ID:svaVgfWSexchangeInfoとforeback?だけやれば特定の全景レイヤー単体でのトランジションができるってこと?そうは問屋が卸さないか
0653名前は開発中のものです。
2015/01/31(土) 09:38:24.10ID:svaVgfWS0654名前は開発中のものです。
2015/01/31(土) 22:37:42.42ID:nXYDAlhgKAGの次はNAMERとかになるのかなとか思ってたけど、
KAG自体は更新されないのか
0655名前は開発中のものです。
2015/01/31(土) 22:39:58.41ID:1AV0TVxWフツーのことしかしない人には吉里吉里2で十分だしね
0656名前は開発中のものです。
2015/01/31(土) 22:45:21.31ID:YMB405ZQなんか色々違ってて吉里吉里Zに移行できない
0657名前は開発中のものです。
2015/01/31(土) 23:50:53.69ID:SpQYLffCKAGの次バージョンはKAGEXでよくね
>>655-656
吉里吉里本体をVSでコンパイル
できるようにしたってだけだから
改造しないなら本家で十分
今欲しいのはスマホ版吉里吉里
KAG互換じゃなくてTJSレベルで互換のやつ
0658名前は開発中のものです。
2015/01/31(土) 23:58:20.64ID:1AV0TVxWなお
0659名前は開発中のものです。
2015/02/01(日) 00:35:56.18ID:k7hNSo9MZより表に情報出てこない
0660名前は開発中のものです。
2015/02/01(日) 02:06:02.96ID:f2zsWThtそれかなり前からあるけど
たしか重くて落ちたから使われなかったんだっけ
スマホが高性能化した今なら実用に耐える?
>>659
細かい修正以外は開発止まってるみたい
EXはリポジトリだけで公式サイトないからね
Zのサポートが充実して見えるよ
(まあ金もらってるから当然なんだろうが)
0661名前は開発中のものです。
2015/02/01(日) 22:46:22.76ID:gWX6KUEU0662名前は開発中のものです。
2015/02/01(日) 23:20:27.70ID:N1fbOfox0663名前は開発中のものです。
2015/02/03(火) 00:07:19.90ID:J5xQq9HiiOSみたいなデザインのやつ
どうすればいいんだろう
0664名前は開発中のものです。
2015/02/03(火) 00:26:43.72ID:gF+Oi6S/0665名前は開発中のものです。
2015/02/03(火) 00:28:59.24ID:rYxNESSk0666名前は開発中のものです。
2015/02/03(火) 00:31:30.17ID:bhoU+yqF0667名前は開発中のものです。
2015/02/03(火) 00:32:18.98ID:d6Uo8BIU(1)下の画像をキャプチャ
(2) ガウスぼかし
(3) 不透明度10%ぐらいの白で上書き
(4) 目的のウインドウ形状で切り抜き
これでそれっぽい画像が作れる
0668名前は開発中のものです。
2015/02/03(火) 00:51:47.75ID:rYxNESSk0669名前は開発中のものです。
2015/02/03(火) 02:28:19.14ID:8IoCc8YD0670名前は開発中のものです。
2015/02/03(火) 10:39:38.36ID:j8qR6k1dでもそれっぽい物になると思われるが
GPU無しでリアルタイムに出来るか?
大きさがそれ程でも無ければ出来るだろうか
0671名前は開発中のものです。
2015/02/03(火) 13:15:16.08ID:/+Sz/am+class FrostedGrassLayer extends Layer
{
function FrostedGrassLayer(win, parent) {
super.Layer(win, parent);
System.addContinuousHandler(onUpdate);
hitThreshold=256;/*マウスに反応させない*/
}
function finalize() {
System.removeContinuousHandler(onUpdate);
super.finalize();
}
function onUpdate(){if(isvalid this && visible)update(0,0,width,height);}
function onPaint() {
if (visible) {
visible=false;
piledCopy(0,0,parent,left,top,width,height);
visible=true;
doBoxBlur(5,5);
colorRect(0,0,width,height,0xffffff,64);
}
}
};
System.setArgument("-contfreq", 60); // 安全処理
global.a = new FrostedGrassLayer(kag, kag.primaryLayer);
a.setPos(100,100,400,400);
a.visible = true;
kag.add(a);
ブラウザから書くのに適当に検索したら sc だった(汗)
あれは整合どうなってんだろう
067210人に一人はカルトか外国人
2015/02/03(火) 21:58:58.61ID:4BUq3uTM・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
10人に一人はカルトか外国人
「ガスライティング」で検索を!
...
0673名前は開発中のものです。
2015/02/04(水) 05:44:16.21ID:HweqwVUT一般論だけどそういう描画処理をするときは
プリレンダリングが面倒でない場合はなるべくプリで
今はPCの性能向上であっさり動く場合も多いけど
古いPCを使っているユーザもいることを忘れがち
だからリアルタイムの描画処理を多用するときは
低性能でのテスト環境を用意しておく
0674名前は開発中のものです。
2015/02/04(水) 10:55:19.64ID:kzrsN7Su0675名前は開発中のものです。
2015/02/04(水) 10:59:32.80ID:Dj9CkSnR0676名前は開発中のものです。
2015/02/04(水) 13:29:45.52ID:cRGfXlV50677名前は開発中のものです。
2015/02/04(水) 13:30:42.39ID:cRGfXlV50678名前は開発中のものです。
2015/02/04(水) 13:50:06.59ID:osgQEdjj自前で描画処理かきおこせばおけ
0679名前は開発中のものです。
2015/02/04(水) 13:54:39.74ID:Dj9CkSnR0680名前は開発中のものです。
2015/02/04(水) 19:14:38.79ID:5xjIgLoV中ほど辺りで
property askYesNo { getter() { KAGLoadScript("YesNoDialog.tjs"); return global.askYesNo; } }
こんな感じでオン・デマンド・ローディングをしているスクリプトがいくつかあるけど
これらはなんで最初に呼び出されたときに初めて読み込むようにしているんでしょうか。
他のスクリプトと同じく、起動時に読み込んでしまえばいいと思うんだけど。
0681名前は開発中のものです。
2015/02/04(水) 20:44:10.78ID:kzrsN7Su0682名前は開発中のものです。
2015/02/04(水) 20:51:48.40ID:Dj9CkSnR0683名前は開発中のものです。
2015/02/04(水) 21:20:21.64ID:HweqwVUTC++は書けるが
なるべくTJSだけで完結させたいな
最終的に連携させる都合上
C++とTJSの両方を少しずつ書いていくと
片方の文法に引っ張られてミスったりする
中身をいじらなくていい枯れたDLLに
なるまでは負のシナジーがストレスになる
>>680-681
昔はPC環境が貧弱だったから
全読み込みすると起動が重くなるってことだな
0684名前は開発中のものです。
2015/02/04(水) 21:39:19.12ID:5xjIgLoVあー、なるほど。そういう歴史があったんだw
理由が分かってすっきりしました。どうもありがとー。
0685名前は開発中のものです。
2015/02/15(日) 21:48:17.32ID:Opljbhqlよし、ならば俺が・・・ 動的に縮小、拡大、回転しながら動かすexmove的な物があると思うんですが、これに自由変形を付け加えたようなのってありませんかね?
ttps://github.com/kyouryuukunn/AutoImage/blob/master/exmove.ks
0686名前は開発中のものです。
2015/02/17(火) 14:11:29.84ID:AKjtwe2m変形はlayerExPerspectiveでできるから頑張れ
0687名前は開発中のものです。
2015/02/23(月) 00:11:24.50ID:SvtKWe6C数値が後で変わるので変数を入れときたいんですが
0688名前は開発中のものです。
2015/02/23(月) 01:45:55.21ID:26L7ZArA0689名前は開発中のものです。
2015/02/23(月) 09:06:10.19ID:oed6Juexこうやった場合、今現在のf.hoge2の値がf.hoge1に入るわけだけど
このあとでf.hoge2を別の値に変更した場合f.hoge1は変更前のf.hoge2の値が入ったままになる。
これを、f.hoge2を変更したらf.hoge1も連動してf.hoge2と同じ値にする関数はないか
的な質問じゃね?
0690名前は開発中のものです。
2015/02/23(月) 12:18:42.68ID:yluJTd73クラスならプロパティ使うとか
0691名前は開発中のものです。
2015/02/23(月) 12:41:05.20ID:hMeESGxB0692名前は開発中のものです。
2015/02/24(火) 01:34:30.14ID:QOhkEtKv0693名前は開発中のものです。
2015/02/24(火) 06:49:11.43ID:4t0Nfr9lやりたいこと↓
・通常フェード(trans)に影響を受けない
・透明情報有りの画像表示
・absoluteを指定
・裏表作成、自前でフェード管理
・複数レイヤ作成
・消したり(freeimage)もしたい
こんなわがままに答えてくれそうな神レイヤ作れませんか
0694名前は開発中のものです。
2015/02/24(火) 07:09:58.63ID:bagqr7ql0695名前は開発中のものです。
2015/02/24(火) 07:29:38.48ID:4t0Nfr9lぐぬぬ あんまりこういう使いかたはしないのかぁ
ダメ元でsystemのtjs覗いてみよう・・・
0696名前は開発中のものです。
2015/02/24(火) 07:49:26.84ID:bagqr7qlいや、kagex とかがプライマリレイヤーを分けてあるのはまさにそういう用途のためかと
0697名前は開発中のものです。
2015/02/24(火) 08:41:44.54ID:8kv+s+rN自前で改造してある人はそれなりにいると思われるが汎用にはなり得ないので配布されない
残念だがどうしようもない
0698名前は開発中のものです。
2015/02/24(火) 08:54:41.71ID:bagqr7ql0699名前は開発中のものです。
2015/02/24(火) 16:10:36.82ID:gWj8BsJF縁取り影なんかはできるけど、更に文字にグラデ色つけたいってのができたらいいんだが
自分の吉里吉里レベルが低すぎてどうやればいいのかすら解らない
0700名前は開発中のものです。
2015/02/24(火) 16:32:33.28ID:UJmHp7/A注文の仔細が分からんが文字列に対してなら、
ttp://koumei.rejec.net/html/krkr.html
ここのFadeChにそういう機能があった気がする。
ただMessageLayer滅茶苦茶弄ってるから
汎用性が低く、実装への敷居も少し高め。
0701名前は開発中のものです。
2015/02/24(火) 16:44:18.86ID:gWj8BsJFレスサンクス文字列だとこういうのがあるんだね
詳しく言うとYu-risのデフォルトテキスト表示みたいなといえば伝わりやすいかな
商業で吉里吉里製?でグラデ文字にしてるの1個はみたんで
Zか吉里吉里かわからないけど出来ない事はないんだろうなあとは思うんだけど
0702名前は開発中のものです。
2015/02/24(火) 19:16:24.31ID:AT/S8cyS0703名前は開発中のものです。
2015/02/24(火) 19:45:37.52ID:5BUUL94O2. 透明なレイヤに文字列を描画
3. 2. と同じサイズのレイヤを作って、それに1.をstFastLinear でstretchCopy してグラデーション画像をつくる
4. 2. のfaceをdfOpaque holdAlpha をtrue にして、3.をcopyRect してグラデーション画像をかぶせる
5. 4.を描画先に operateRect で合成
こんなもんかな。直接stretchRect できるといいんだけと、対象の face がdfOpaque だと補間が無効でグラデにならないので中間の作業レイヤが必要
0704名前は開発中のものです。
2015/02/24(火) 21:05:29.09ID:gWj8BsJF解説ありがとう!
TJSに挑戦さんあるし、部分部分はなんとなくわかるしできそうな気もするんだけど
線形補間でグラデーション画像を作る辺りが良くわからない
こういうのって何処で勉強すればいいんだろ
でもこういう流れで出来ない事はないのがわかったから頑張ってみるよ
0705名前は開発中のものです。
2015/02/24(火) 21:24:43.89ID:qkuybHk50706名前は開発中のものです。
2015/02/24(火) 21:53:25.25ID:6ptPBTw2var seed = new global.Layer(window, this); // グラデの種
var grad = new global.Layer(window, this); // グラデ―ション
var work = new global.Layer(window, this); // テキスト描画先
with (work.font) { .face=font.face; .angle=font.angle; .bold=font.bold; .italic=font.italic; .strikeout=font.strikeout; .underline=font.underline; };
work.setSize(work.font.getTextWidth(text), work.font.getTextHeight(text));
work.drawText(0,0,text,0xffffff,255,aa); // テキスト表示
seed.setSize(1,colors.count);// 1×3 サイズ
seed.fillRect(0,0,seed.width,seed.height,0xffffffff); // αをうめておく・operateRect を使う場合は必要
for(var i=0;i<colors.count;i++) seed.setMainPixel(0,i,colors[i]); // グラデの種を作る
grad.setSize(work.width,work.height); // テキスト用のレイヤと同じサイズにする
grad.stretchCopy(0,0,grad.width,grad.height,seed,0,0,seed.width,seed.height,stLinear); // 引き延ばしで補間されてグラデーションになる
work.operateRect(0,0,grad,0,0,grad.width,grad.height,omPsMultiplicative,255);// 文字が白なので乗算で染まる
this.operateRect(x, y, work, 0, 0, work.width, work.height, omPsNormal, opa); // レイヤに描画
};
var lay = new Layer(kag, kag.primaryLayer);
lay.visible = true;
lay.setSize(200,20);
lay.font.height=20;
lay.drawTextGrad(0,0,"てすと", [0xffffff,0xffff00,0xff0000], 255, true); // 白黄赤のグラデ
0707名前は開発中のものです。
2015/02/24(火) 22:02:49.37ID:6ptPBTw2height 指定漏れ
with (work.font){ .height=font.height ... }
あと最後の operateRect のとこは omPsNormal でなくて omAuto でOK
0708名前は開発中のものです。
2015/02/24(火) 22:07:26.44ID:6ptPBTw2多用するならwindow にテンポラリレイヤつくってそれを参照するほうが良い
0709名前は開発中のものです。
2015/02/25(水) 00:17:35.23ID:ofhrZAHjなんと、詳細作っていただいてありがとうございます!
なるほどこんな感じに作るんですね…
>for(var i=0;i<colors.count;i++) seed.setMainPixel(0,i,colors[i]); // グラデの種を作る
この辺なんかさっぱりでした…
多用して使いたいので、書いていただいたものを参考に作ってみます
ありがとうございました!
0710名前は開発中のものです。
2015/02/28(土) 01:05:50.99ID:jgEVa9oL0711名前は開発中のものです。
2015/02/28(土) 03:32:32.91ID:+HF1cTG60712名前は開発中のものです。
2015/02/28(土) 10:05:19.26ID:yVEFIRFVあれどこも解説らしい解説がないから、マニュアルで理解できる人向けだね
0713名前は開発中のものです。
2015/02/28(土) 13:07:43.28ID:pY7Qs9oG0714名前は開発中のものです。
2015/02/28(土) 14:24:49.80ID:CJr37KrRwin api いろいろ弄ってみても情報少なくてやり方に辿りつけなかった……
どうやっても1文字ずつの文字イメージが出力されてしまう
瞬間表示だけでもできればいいんだけど
0715名前は開発中のものです。
2015/02/28(土) 17:55:59.60ID:yVEFIRFV上手く行かなかった…難しいな
>>714
他言語対応は数日前にDeeタンがZでやれって書いてた気がする
そういう意味じゃなかったらすまん
0716名前は開発中のものです。
2015/03/01(日) 05:06:28.27ID:RHSd/1C+いっそのこと画像ファイルにしてそれを表示するとか
テキストを全てアラビア語化する必要があるならナンセンスな方法だけど
0717名前は開発中のものです。
2015/03/01(日) 10:55:52.72ID:PJtV4HHx結合文字は直前の文字の上に重ねる形で描画されるらしい
最初から結合された物もあるそうだが
http://blog.antenna.co.jp/PDFTool/archives/2006/01/22/
同じ文字コードでも文章内の位置によってグリフが変わるそうで
アラビア語の表示って複雑
http://stackoverflow.com/questions/21676047/arabic-string-get-actual-glyph-contextual-shaping/27067280#2706728
吉里吉里のテキスト描画がその辺考慮しているかは分からない
0718名前は開発中のものです。
2015/03/01(日) 11:00:30.14ID:PJtV4HHxComplex Scriptsを処理する必要のある言語には特別な考慮が必要そうなのは分かる
https://msdn.microsoft.com/en-us/library/windows/desktop/dd319103(v=vs.85).aspx
0719名前は開発中のものです。
2015/03/01(日) 15:15:18.29ID:Mr4qAUSTapp.addBrushでBrushTypeLinearGradient設定すればいいのかと思った違うのね
gdi+の解説見たができなかったよ
0720名前は開発中のものです。
2015/03/01(日) 22:38:52.72ID:CP6paEMc0721名前は開発中のものです。
2015/03/02(月) 15:11:34.42ID:rHccDIl+// BrushType定義BrushTypeLinearGradient = 4;の記載があったから
BrushTypeLinearGradient の場合のところと合わせて
app.addBrush(4,0xFFFF00008(color1),(color2)…で入れていけばいいのかと思ったり
pointを「点指定は [x,y] の配列または %[x:x, y:y] の辞書」を見て、配列に入れたりもした
変数宣言してgdi+解説の全部入れればいいのか?なんて思考錯誤したんだけどね
0722名前は開発中のものです。
2015/03/02(月) 20:52:52.20ID:PQyeWyvX吉里吉里Zはfreetypeに対応しているって聞いたので
harfbuzzを使ったら良いんじゃなかろうか
https://github.com/behdad/harfbuzz/wiki
SDL、freetype、harfbuzzを使った多言語対応のテキストレンダリングの例がここにあった
0723名前は開発中のものです。
2015/03/03(火) 19:29:43.07ID:TV/pEFxccolorOrBrushに指定するのは「ARGB色指定またはブラシ情報【【辞書】】」と書いてある
var app = new GdiPlus.Appearance();
app.addBrush(%[
type : GdiPlus.BrushTypeLinearGradient,
color1:0xFFFF0000,
color2:0xFF000000,
wrapMode:GdiPlus.WrapModeTile,
point1:[0,0],
point2:[0,30],
], 0, 0);
var font = new GdiPlus.Font("MS ゴシック", 30, GdiPlus.FontStyleRegular);
layer.drawPathString(font, app, 0, 0, "テスト");
0724名前は開発中のものです。
2015/03/05(木) 21:41:20.12ID:GmzzsMIrありがとう!
colorの所とpoint1:[0,0],なんてのは試してみてたんだけど、他の所が大間違いだった…
wrapMode:GdiPlus.WrapModeTile, なんて書いても居なかったわ
迷惑かけないように、もうちょっと根本的に勉強しないといけないわ
これですっきりやれそうだよ、どうもありがとう!
0725名前は開発中のものです。
2015/03/06(金) 05:07:44.81ID:z7zvkqikレイヤをmoveで移動させている途中で
1、いまどの辺にいるのか、現在位置の座標を取得したい
2、クリックで移動を止めたい(最終移動地点ではなく、移動途中の表示場所で止めたい)
この2点が、直ぐ出来ると思って取りかかったものの、どうすれば良いのか判らなくなって
検索しまくっているのですが解決しません。
どうぞよろしくお願いします。
0726名前は開発中のものです。
2015/03/07(土) 17:27:30.19ID:BD4MUsBg最終移動位置に設定しているので、設定している部分を無くせば止めたと
ころの位置に停止する。
このメソッドを直接変えてしまうと全部変わってしまうから、LinearMover
を継承したクラスを作って、オーバーライドし KAGLayer.beginMove で呼
び分けるなどする。
これで、2のクリック位置で止まるは出来る。
1は普通にレイヤーのプロパティを見ればいい。
kag.fore.layers[x].left/top 辺り。
0727名前は開発中のものです。
2015/03/07(土) 18:25:26.56ID:d4R5SU2fレスありがとうございます。
クリックで移動を止めるのは用意されたスクリプトだけでは
出来なかったんですね。 助かります。
さっそく今から作ってみようと思います。
ありがとうございました。
0728名前は開発中のものです。
2015/03/08(日) 05:48:03.37ID:bvNHYQHX1文字1文字の隙間を調整するために、ピッチを指定したうえで、センタリングしようとしたのですが
上手く行きません
[style align="center" pitch="0px"]
テストザテスト[r]
[resetstyle]
[style align="center" pitch="30px"]
テストテ[r]
[resetstyle]
[style align="center" pitch="50px"]
テストザテスト[r]
[resetstyle]
↓結果(黒い線が中央です)
http://gyazo.com/8e723ebb02e7a030d1dd7ebb4658276f
こうした時、表示された文字の位置が中央からずれてしまいました
画面中央に、ピッチを調整した文字を表示するにはどうしたらいいのでしょうか
0729名前は開発中のものです。
2015/03/08(日) 08:52:12.77ID:HIUIq7mWその分だけ右に寄せとかないと見かけ上左右対称にならない
TJS式でゴリゴリ書くよ
[style align="center" pitch="50px"]
テストザテスト[r]
[locate x=&(50-kag.current.font.getTextWidth("ト"))]
テストザテスト[r]
[resetstyle]
■ このスレッドは過去ログ倉庫に格納されています