|
|
2010/12/20(Mon) 14:33:31|NO.36252
font "フォント名",13,16 命令で、文字列にアルファチャンネルをかけようとしているのですが、
フォントサイズが13以下の文字列にアルファチャンネルをかけようとしても全くアルファチャンネルがかかりません。
MacOSXみたいに、フォントサイズが13でもきれいにアルファチャンネルをかけるということはできないんでしょうか。
ご回答宜しくお願いします。
|
|
2010/12/20(Mon) 20:11:58|NO.36256
font命令でフォントサイズが14以上のときにアルファチャンネルがかかるとは思えません?
アルファチャンネルのかかるサンプルを適当に書いてもらえます?
|
|
2010/12/20(Mon) 22:50:48|NO.36265
アルファチャンネルじゃなくアンチエイリアスの事を言ってるのかな?
その前提で書くけど
アンチエイリアスが掛かるかどうか、どのサイズの時に掛かるか
というのはフォントファイル自身が持っていて
それに基づいてフォントの描画がされます。
サイズ13以下で掛からないという事はそういう設定がされてるんでしょう。
他のフォントだとまた違った設定のはずです。
windowsのフォント表示はgdi32.dllが受け持ってて
HSPもこれを利用してるはずなので、これを使ってる限りは
勝手にキレイなフォント表示になったりはしないです。
|
|
2010/12/21(Tue) 20:46:25|NO.36277
アンチエイリアスをかけるモジュール作ってみた
勝手に使ってくだしあ
aafont…font命令に相当 パラメータ省略不可
aames…mes命令に相当
#module
#deffunc aafont str fontname2, int fontsize2, int fontstyle2
fontname = fontname2
fontsize = fontsize2
fontstyle = fontstyle2
buffer 2000
font fontname, fontsize, fontstyle
return
#deffunc aames str text
winid = ginfo_act : if winid < 0 : winid = 0
buffer 2000, 1, 1
font fontname, fontsize, fontstyle
mes text
textx = ginfo_mesx
buffer 2000, textx*4, fontsize*4
font fontname, fontsize*4, fontstyle
mes text
gsel winid
gzoom textx, fontsize, 2000, 0, 0, textx*4, fontsize*4, 1
font fontname, fontsize
mes
buffer 2000, 1, 1
gsel winid
return
#global
aafont "MS Pゴシック", 14, 0
//--------------------sample----------------------
aafont "MS Pゴシック", 14, 0
aames "吾輩は猫である。名前はまだ無い。"
aames "どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。"
aafont "MS P明朝", 14, 0
aames "吾輩は猫である。名前はまだ無い。"
aames "どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。"
|
|
2010/12/22(Wed) 00:18:06|NO.36279
hsp から GDI+ が使用できる Artlet2D を 使えば 自動でアンチエイリアスをかけてくれます。
ただし、ゲームのメインルーチンなどで使用する際には、
コピーする画像が大きければ大きいほどCPU負荷が高くなるので注意が必要です。
ちなみにアルファチャンネルを持つ、つまり半透明色を持つ画像も使用することが出来ます。
#include "a2d.hsp"
#enum wid_main = 0
#enum iid_main
alCreateImage iid_main , 640,480
alFont msGothic , 13
alColor ,,,255
alDrawText "てすとてすとてすとてすと" , 10,10
alCopyImageToScreen iid_main, wid_main
redraw 1
|
|
2010/12/22(Wed) 00:27:35|NO.36280
こちらも参考になると思います。
http://tu3.jp/0105
フォントサイズ1でもアンチエイリアスがかかります。(読めませんけどね)
|
|
2010/12/22(Wed) 14:26:36|NO.36282
アンチエイリアスのことを聞きたいんじゃないんですけど。
アルファチャンネルって言いましたよね?
バッファを用意してgmodeでピクセルアルファブレンドコピーを利用することで
フォントサイズ13以下でもアルファチャンネルをかけることができました。
説明不足により皆様にはお手数をかけてしまいましたが自己解決できました。
|
|
2010/12/22(Wed) 20:57:49|NO.36291
だったら最初にアルファチャンネルがどうのこうのって説明してくれ
始めっからききなれないような言葉で聞かれても分かる訳ありませんわな
でもって「適当に検索して」みたいなことも言うんじゃありません。
…以上、超説教じみた書き込み失礼いたしました
|
|
2010/12/23(Thu) 01:38:44|NO.36298
蛇足
#include "a2d.hsp"
#enum wid_main = 0
#enum iid_main
alCreateImage iid_main , 640,480
r = 100,100 , 500,400, 320,20
alPenWidth 10
alcolor 224,136,142
alDrawClosedCurve r, 3 , 3
alcolor 045,060,210,100
alDrawClosedCurve r, 3
alcolor 045,232,065,120
alDrawClosedCurve r,3, -1
alFont msGothic , 100
alColor ,,,200// 四番目の引数で 透明度を設定できる。
alDrawText "ががが" , 200,200
alCopyImageToScreen iid_main, wid_main
redraw 1
GDI+ は便利です。
ちなみに天敵は DirectX
|
|
2010/12/23(Thu) 10:25:14|NO.36305
質問者は最初からアルファチャンネルがかからない(かけられない?)と言っていますし、
勝手に深読みしてアンチエイリアスのことだと決めてかかって思考を巡らしたことが無駄と分かったからといって、
責めるのは間違いなのでは?
>始めっからききなれないような言葉で聞かれても分かる訳ありませんわな
・・・。それは単にあなたの知識になかっただけでしょう?
アルファチャンネルもアンチエイリアスもHSPのマニュアルに出てくる用語ですよ。
|
|