HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1220
k5342font "フォント名",13,16 について9未解決


k5342

リンク

2010/12/20(Mon) 14:33:31|NO.36252

font "フォント名",13,16 命令で、文字列にアルファチャンネルをかけようとしているのですが、
フォントサイズが13以下の文字列にアルファチャンネルをかけようとしても全くアルファチャンネルがかかりません。
MacOSXみたいに、フォントサイズが13でもきれいにアルファチャンネルをかけるということはできないんでしょうか。

ご回答宜しくお願いします。



この記事に返信する


damage

リンク

2010/12/20(Mon) 20:11:58|NO.36256

font命令でフォントサイズが14以上のときにアルファチャンネルがかかるとは思えません?
アルファチャンネルのかかるサンプルを適当に書いてもらえます?



R

リンク

2010/12/20(Mon) 22:50:48|NO.36265

アルファチャンネルじゃなくアンチエイリアスの事を言ってるのかな?
その前提で書くけど
アンチエイリアスが掛かるかどうか、どのサイズの時に掛かるか
というのはフォントファイル自身が持っていて
それに基づいてフォントの描画がされます。
サイズ13以下で掛からないという事はそういう設定がされてるんでしょう。
他のフォントだとまた違った設定のはずです。

windowsのフォント表示はgdi32.dllが受け持ってて
HSPもこれを利用してるはずなので、これを使ってる限りは
勝手にキレイなフォント表示になったりはしないです。



ESZET

リンク

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 "どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。"



info

リンク

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



p、USAGI

リンク

2010/12/22(Wed) 00:27:35|NO.36280

こちらも参考になると思います。
http://tu3.jp/0105

フォントサイズ1でもアンチエイリアスがかかります。(読めませんけどね)



k5423

リンク

2010/12/22(Wed) 14:26:36|NO.36282

アンチエイリアスのことを聞きたいんじゃないんですけど。
アルファチャンネルって言いましたよね?
バッファを用意してgmodeでピクセルアルファブレンドコピーを利用することで
フォントサイズ13以下でもアルファチャンネルをかけることができました。


説明不足により皆様にはお手数をかけてしまいましたが自己解決できました。



backdrop

リンク

2010/12/22(Wed) 20:57:49|NO.36291

だったら最初にアルファチャンネルがどうのこうのって説明してくれ
始めっからききなれないような言葉で聞かれても分かる訳ありませんわな
でもって「適当に検索して」みたいなことも言うんじゃありません。

…以上、超説教じみた書き込み失礼いたしました



infofofofo

リンク

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



damage

リンク

2010/12/23(Thu) 10:25:14|NO.36305

質問者は最初からアルファチャンネルがかからない(かけられない?)と言っていますし、
勝手に深読みしてアンチエイリアスのことだと決めてかかって思考を巡らしたことが無駄と分かったからといって、
責めるのは間違いなのでは?

>始めっからききなれないような言葉で聞かれても分かる訳ありませんわな
・・・。それは単にあなたの知識になかっただけでしょう?
アルファチャンネルもアンチエイリアスもHSPのマニュアルに出てくる用語ですよ。



ONION software Copyright 1997-2023(c) All rights reserved.