ゲーム作成について

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

ゲーム作成について

#1

投稿記事 by yamato » 16年前

はじめましてyamatoと言います。C言語知識は、初心者レベルです。
よろしくお願いします。
今回初めてC言語でゲーム作成を行っており、まずゲームプログラミングの館を
参考にし、使う画像を作成したのですが、一つのプログラムにする方法がわからず作業が止まっています。
if文などを使い、試行錯誤したのですがわかりませんでした。繋げたいプログラムを以下に書かせていただきます。
ご指導ご鞭撻のほどよろしくお願いします。
「表紙」
#include "DxLib.h"
#define PI 3.1415926
 
char Key[256];
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
 
 
        DrawString(0,0,"a",GetColor(255,255,255));
        
 
        SetFontSize( 45 ) ;                             
        SetFontThickness( 8 ) ;                         
        ChangeFont( "HGS創英角ポップ体" ) ;                     
        ChangeFontType( DX_FONTTYPE_ANTIALIASING );     
 
 
        DrawString(50,180,"b",GetColor(255,255,255));
 
 
        SetFontSize( 30 ) ;                             
        SetFontThickness( 1 ) ;                         
        ChangeFont( "HGS創英角ポップ体" ) ;              
        ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE 
 
 
        DrawString(50,230,"      ~c~",GetColor(255,255,255));

		SetFontSize( 20 ) ;                             
        SetFontThickness( 1 ) ;                         
        ChangeFont( "MS 明朝" ) ;              
        ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE 
 
 
        DrawString(130,430,"       d",GetColor(255,255,255));
 
 
        WaitKey();
        DxLib_End();
        return 0;
}
「選択画面1」
#include "DxLib.h"
 
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
        char GetHitKeyStateAll_Key[256];
        GetHitKeyStateAll( GetHitKeyStateAll_Key );
        for(int i=0;i<256;i++){
                if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
                else                            KeyStateBuf=0;
        }
        return 0;
}
 
void char_disp(int White,int y){
        DrawString( 150 , y   , "■"            , White );
        DrawString( 170 , 250 , "level1  障壁一つ"  , White );
        DrawString( 170 , 270 , "level2  障壁二つ" , White );
        
}
 
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        
    int Key[256];
    int White , y=250;                                       
 
    ChangeWindowMode(TRUE);
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
	PlayMusic( "ドラ.wav" , DX_PLAYTYPE_BACK ) ;
    White = GetColor( 255 , 255 , 255 ) ;                    
 
 
    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
          
 
        char_disp(White,y);                              
 
        if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
        
            y+=20;                                           
            if(y==290)                            
                y=250;                        
        }
 
        ScreenFlip();
    }
 
    DxLib_End();
    return 0;
}


「選択1から選択2-1(level1)へ」
#include "DxLib.h"
 
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
        char GetHitKeyStateAll_Key[256];
        GetHitKeyStateAll( GetHitKeyStateAll_Key );
        for(int i=0;i<256;i++){
                if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
                else                            KeyStateBuf=0;
        }
        return 0;
}
 

void char_disp(int White,int y){

        DrawString( 170 , 120 , "x" , White );
		DrawString( 150 , y   , "■"            , White );
        DrawString( 170 , 140 , "0.125" , White );
        DrawString( 170 , 160 , "0.72" , White );
        DrawString( 170 , 180 , "1.445" , White );
      
}
 
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        
    int Key[256];
    int White , y=140;                                       
 
    ChangeWindowMode(TRUE);
    if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;
 
    White = GetColor( 255 , 255 , 255 ) ;                    
 
 
    while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
          
 
        char_disp(White,y);                              
 
        if( Key[KEY_INPUT_DOWN]==1 ||( Key[KEY_INPUT_DOWN]%5==0 && Key[KEY_INPUT_DOWN]>30)){
        
            y+=20;                                           
            if(y==200)                            
                y=140;                        
        }
 
        ScreenFlip();
    }
 
    DxLib_End();
    return 0;
}


ゲーム作成2に続く

yamato

ゲーム作成について

#2

投稿記事 by yamato » 16年前

環境は、
Windows Xp
Visual C++ Express Edition 2008 です。

閉鎖

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