Re: アンチエイリアス ( No.1 ) |
- 名前:管理人 日時:2006/12/12 13:26
U-medaさん始めまして、DXライブラリの管理人です。
3Dゲームにあるフルシーンアンチエイリアシングのような
機能のことでしたらありませんが、 画像に関しては
αチャンネル付き画像を使用することで、文字に関しては
ChangeFontType 関数で DX_FONTTYPE_ANTIALIASING を指定することで
エイリアスが無い描画処理をすることが出来ます。
<<ChangeFontType の説明>>
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html#R17N24
<<サンプル>>
(左側に非アンチエイリアスの円の画像と文字を、
右側にアンチエイリアスの円の画像と文字を表示するプログラムです)
http://homepage2.nifty.com/natupaji/temp/AntiAliasTest.zip
|
Re: アンチエイリアス ( No.2 ) |
- 名前:U-meda 日時:2006/12/13 00:30
αチャンネルとChangeFontType関数使ってみたら
上手くフルシーンアンチエイリアシングっぽい感じになりました。
有り難うございました。
|
Re: 別の質問、簡略化 ( No.3 ) |
- 名前:U-meda 日時:2006/12/19 19:20
新たに別の質問です。
(新スレ立てるような質問ではないのでここに書きました。)
//チップ2を当たるように指定
if(Data[(y/16-1)][(y/16-1)%2]==2)return 1;
//チップ5を当たるように指定
if(Data[(y/16-1)][(y/16-1)%2]==5)return 1;
このようなマップチップの当たり判定を指定するプログラムを作ったのですが、チップの数字以外同じなので
if(Data[(y/16-1)][(y/16-1)%2]==○)return 1;
○の数字を別に指定するプログラムはどうすればいいのでしょうか。
|
Re: アンチエイリアス ( No.4 ) |
- 名前:Will 日時:2006/12/20 11:11
int chip_num;
if (条件) {
chip_num = 2;
} else if (条件) {
chip_num = 5;
}
if(Data[(y/16-1)][(y/16-1)%2]==chip_num)return 1;
でいいんじゃないですか。
もしくは、判定部分を関数にして
int hantei(void) {
if (条件) {
return(2);
} else if (条件) {
return(5);
}
}
if(Data[(y/16-1)][(y/16-1)%2]==hantei())return 1;
でしょうか。
|
Re: アンチエイリアス ( No.5 ) |
- 名前:管理人 日時:2006/12/25 14:03
U-medaさんどうも、DXライブラリの管理人です。
数字だけ違う、という場合はテーブルを使います。
#define HITCHIP_NUM (2) //当たるチップの数
// 当たるチップの番号のテーブル
int HitChipTable[ HITCHIP_NUM ] = { 2, 5 };
〜〜〜〜
int i;
// 当たるチップかどうかを調べる
for( i = 0; i < HITCHIP_NUM; i ++ )
{
if( Data[(y/16-1)][(y/16-1)%2] == HitChipTable[i] )return 1;
}
〜〜〜〜
他の方法としては、当たるかどうかをテーブルで持つと便利です。
#define CHIP_NUM (8) // チップの種類の数
// 各チップが当たるかどうかのテーブル(0:当たらない 1:当たる)
int HitTable[ CHIP_NUM ] = { 0, 0, 1, 0, 0, 1, 0, 0 } ; // この配列の場合 2 と 5 が当たる
〜〜〜〜
// チップ番号の配列要素が 1 だったら当たるチップ
if( HitTable[ Data[(y/16-1)][(y/16-1)%2] ] == 1 ) return 1;
〜〜〜〜
|
Re: アンチエイリアス ( No.6 ) |
- 名前:U-meda 日時:2006/12/29 22:44
Willさん、管理人さん分かりやすい回答ありがとうございました。
配列要素を使ってみようと思います。
|