Re: FixedSysについて ( No.1 ) |
- 名前:Will 日時:2013/11/18 13:41
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=614
過去ログより
|
Re: FixedSysについて ( No.2 ) |
- 名前:でぃなんとか 日時:2013/11/19 21:11
過去ログを読ませていただきました。
ChangeFont("Arial", DX_CHARSET_DEFAULT);
確かにこれで Arial というフォントは使えるようです。
(私はこのフォントを知らないので本当に Arial かどうかは知りませんが。)
しかし……
ChangeFont("FixedSys", DX_CHARSET_DEFAULT);
これを試して見ましたが、結果は変わりませんでした。
GetGlyphOutline 関数が失敗しました
Log.txt で主に表示された文です。
(どうやら DrawString() の数で文の数が変わるみたいです。)
Will 様
わざわざ過去ログを引っ張り出していただいてありがとうございました。
最後に、ソースコードを置いておきます。
結果は黒い画面でした。
//ここから
#include<DxLib.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
ChangeWindowMode(1); DxLib_Init();
// ChangeFont("FixedSys");
ChangeFont("FixedSys", DX_CHARSET_DEFAULT);
// ChangeFont("ああああ");
// ChangeFont("ああああ", DX_CHARSET_DEFAULT);
DrawString(0, 0, "test Test TEST てすと テスト", 0xffffff);
WaitKey();
DxLib_End(); return 0;
}
//ここまで
|
Re: FixedSysについて ( No.3 ) |
- 名前:Will 日時:2013/11/20 10:40
すいません、調査不足で誤った回答でした。
FixedsysフォントはTrueTypeフォントで無いことが原因と思います。
ログに出ているGetGlyphOutline関数はTruetypeフォントからビットマップを作成するWindowsAPIです。
想像ですがDXライブラリはTruetypeフォント以外の使用は想定していないようです。
|
Re: FixedSysについて ( No.4 ) |
- 名前:管理人 日時:2013/11/24 03:31
Willさんが仰られています通り、現在のDXライブラリは TrueTypeフォントのみ対応しています
ただ、最初期の頃は TrueType のフォントのみ対応している GetGlyphOutline ではなく全部の
フォントに対応している TextOut を使用していたので、その頃のソースを引っ張り出して
FixedSys に対応してみました
よろしければこちらのバージョンをお試しになってみてください
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
ちなみに FixedSys は半角英数字のみ含まれているフォントのようで、文字列中に全角文字が含まれる
場合は MSゴシック になるようです
( FixedSys はビットマップフォントなので SetFontSize( 64 ) などにするとドット画像が
拡大されて描画されるのですが、全角文字はドット画像が拡大される形にならず、
MSゴシック と非常によく似た形状になるので全角文字には MSゴシックが使用されていると思います )
|
Re: FixedSysについて ( No.5 ) |
- 名前:でぃなんとか(解決) 日時:2013/11/25 17:37
>>管理人様
ありがとうございました。これで
DrawString("FixedSys");
で文字が表示出来る様になりました。
しかし、想像していたのと違うなとも思いました。
というのも、全角文字は半角文字の丁度2倍ではないらしいのです。
ですが、
GetDrawStringWidth();
こういう関数があることを先程知りましたので、これで何とかしてみたいと思います。
>>Will様
私の為に過去ログまで引っ張って頂き、更に原因まで突き止めて頂けるとは私も幸せです。
ありがとうございました。
|
Re: FixedSysについて ( No.6 ) |
- 名前:でぃなんとか 日時:2013/11/27 00:38
事後報告です。
管理人様から頂いたファイルを用いて、
SetFontSize(12);
SetFontThickness(1);
ChangeFont("FixedSys");
この関数で想像していたものと同じものが出力される様になりました。
感謝です。
|