敵の出現パターンがうまくいきません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
V2

敵の出現パターンがうまくいきません

#1

投稿記事 by V2 » 12年前

敵の出現パターンを制作しているのですが、うまくいきません。
友人から、#defineやGetRandを使えばできるよと言われ、制作してみましたが、エラーばかりで、動きません。

下記のプログラムは、デバックした途端、敵が1体すでに描画されており、X軸に5秒ぐらい動き続け、そのあと、画面の上に勝手に移動し、画面内から消えるという感じのプログラムです。とりあえず、敵の動きのプログラムだけ書きました。

僕の理想は、5秒経ったときか、敵1体を倒したときか、敵が画面内から消えたとき、敵が四方から1体出るようにし、同じ絵の敵は画面内で描画されないようにしたいです。

コード:


#include "DxLib.h"

void teki();

int tekiX , tekiY , tekiMuki , tekiGraph ;
int tekiW , tekiH;

int Tame = 0;

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
					 LPSTR lpCmdLine, int nCmdShow )
{

		// 画面モードの設定
	SetGraphMode( 640 , 480 , 16 ) ;

	ChangeWindowMode( TRUE ) ;

	// DXライブラリ初期化処理
	if( DxLib_Init() == -1 ) return -1;

	// グラフィックの描画先を裏画面にセット
	SetDrawScreen( DX_SCREEN_BACK ) ;


	tekiGraph = LoadGraph( "zakoteki.png" ) ;
	tekiX = 0 ; tekiY = 30 ;

	GetGraphSize( tekiGraph , &tekiW , &tekiH ) ;

	//初期値
	tekiMuki = 0 ;

	// 移動ルーチン
	while( 1 )
	{

			// 画面を初期化(真っ黒にする)
		ClearDrawScreen() ;

		// 敵の移動ルーチン
		{

					
				teki();

			
		}
	
		// 裏画面の内容を表画面にコピーする
		ScreenFlip() ;

		// Windows 特有の面倒な処理をDXライブラリにやらせる
		// -1 が返ってきたらループを抜ける
		if( ProcessMessage() < 0 ) break ;

		// もしESCキーが押されていたらループから抜ける
		if( CheckHitKey( KEY_INPUT_ESCAPE ) ) break ;
	}

	DxLib_End() ;				// DXライブラリ使用の終了処理

	return 0 ;					// ソフトの終了
}


void teki(){
				if( tekiMuki == 1 ) tekiX += 3 ;
				if( tekiMuki == 0 ) tekiX -= 3 ;

				if( tekiX > 576 )
				{
					tekiX = 576 ;
					tekiMuki = 0;
				}
				if( tekiX < 0 )
				{
					tekiX = 0 ;
					tekiMuki = 1 ;
				}

				//約5秒経ったら、画面の上に移動し、画面上から消える
				if(Tame >300)tekiY--;

				DrawGraph( tekiX , tekiY , tekiGraph , FALSE ) ;

				Tame++;
	}
 

どうかよろしくお願いします。

V2

Re: 敵の出現パターンがうまくいきません

#2

投稿記事 by V2 » 12年前

 

コード:

の使い方、うまくいかないです

閉鎖

“C言語何でも質問掲示板” へ戻る