サウンドノベルのようなものを練習として作ってみようと思って作ってみたものなんですが・・・。
「Enterキーを押しやがれ」と表示され、押すと次の画面に切り替わり、(↓)
「一行目」を表示したら、Enterキーを押す事によって「2行目」を表示するというプログラムを組んでみたのですが、「2行目」がちらついてしまいます(「一行目」はちらつきません)。
どういうことなのか、自分には全く分かりませんので、状況などを具体的に書くことはできません。
東方弾幕風でプログラミングについて理解し、C言語をちょっぴりだけ知りました。
そして、新・ゲームプログラミングの館を見て、正式なC言語プログラミングとしていろいろと作ってみました。
ですが、やはり奥が深くて自分には難しいため状況の説明ができません
自分が知りたいのは、
「2行目」のちらつきをなくす方法です
開発ソフトにはVC++を使用しています。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode( TRUE );
DxLib_Init(); // DXライブラリ初期化処理
int Bamen = 0; //場面を表す変数。まだ未使用です
int Boom0101 = 0; //場面1のID1という意味です
int Boom0102 = 0; //場面1のID2という意味です
int boom0101g; //場面1の画像一枚目という意味です
int A = 0; //ID1のα値です
int A2 = 0; //ID2のα値です
boom0101g = LoadGraph( "tex/text12343.png" ); // 画像のロード
while( 1 ){
if(Boom0101 == 0){
DrawFormatString( 100, 100, GetColor( 0, 255, 0 ), "Enterキー押しやがれ", 0, 0 ); // 文字を描画する
if(CheckHitKey(KEY_INPUT_RETURN) == 1 ){
if(Boom0101 = 1);
}
}
//if(CheckHitKey(KEY_INPUT_RETURN) == 1 ){
// if(Boom0101 = 1);
//}
if(Boom0101 == 1){ //←間違っても「=」にしない
ClearDrawScreen();
SetDrawBlendMode( DX_BLENDMODE_ALPHA, A/200 );
DrawGraph( 250, 100,boom0101g, TRUE ); // 画像を描画する
DrawFormatString( 100, 200, GetColor( 127, 245, 127 ), "一行目", 0, 0 );
if(A < 60001){
A++;
}
}
if(A > 60000){
if( CheckHitKey( KEY_INPUT_RETURN ) == 1 ){
if(Boom0102 = 1);
}
}
if(Boom0102 == 1){
SetDrawBlendMode( DX_BLENDMODE_ALPHA, A2/200 );
DrawFormatString( 100, 220, GetColor( 127, 245, 127 ), "二行目", 0, 0 );
A2++;
}
if( ProcessMessage() != 0 ){
break;
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
それで、
から
if(CheckHitKey(KEY_INPUT_RETURN) == 1 )
を含んだ を消して、
if(Boom0102 == 1){
SetDrawBlendMode( DX_BLENDMODE_ALPHA, A2/200 );
DrawFormatString( 100, 220, GetColor( 127, 245, 127 ), "二行目", 0, 0 );
A2++;
}
if(Boom0102 == 1)
を
if(A > 60000)
として実行すると、普通にきれいにちらつかずに表示されます。
if( CheckHitKey( KEY_INPUT_RETURN ) == 1 )
が悪さをしているのは把握しました。
何度もいいますが、始めたての自分にはどういうことなのかが分からずに状況を書くことができません
詳しい方、解説をお願いします