毎日電車の中で気合いれて勉強してます(笑)
ところで本題ですが
以前も質問させていただいた、的の移動処理を関数化したいものの、きちんと動作しないという件。
ポインタについて勉強することをおすすめしますと、バッサリと言われてしまったので教本で確認しなおしてみたものの、何をどう修正すればいいのか、頭が回らず挫折寸前です(´・ω・`)
ウィンドウズプログラムを少し触ってみようかなと発言しただけで、GRAMさんには俺が挑戦しても挫折すると思うみたいなこと言われるし。
実力の無さ、頭の悪さを実感、なんてのはずっと前からしてるものの、何を頑張ればいいのかさえ分からなくなってきました…
ただ暗記するだけの勉強である ITパスポート の勉強に力を入れることが今のなんというか、支えです。
質問サイトで書きこんで、またポインタを勉強するように言われるんじゃないかと思うと質問もしにくいし、
なんとなく日記に書き込みました。
少しだけ修正してみたものの、未だきちんと動かずじまいです…。
#include "DxLib.h"
int MouseInput;
int menu=0,playmusic=1,Key[256],White;
int back1/*menu*/,back2/*play1*/,mato1;
int Sound1/*menu*/,Sound2/*play1*/,Sound3;
/***********色の定義*********/
int Movemato( int *count,int *move,int *x, int *y, int *x1, int *y1,int *x2, int *y2){
static int x_1=0,y_1=0;
if(*count%50 == 0 || *count == 1 ){
PlaySoundMem( Sound3, DX_PLAYTYPE_BACK ); // 効果音を再生する
*count+=1;
}
if( *count == 1 ){
*x1=GetRand(500);
*y1=GetRand(340);
}
if(*move==0){
*move=1;
}else{
*count=0;
}
if(*move == 1){
x_1=*x1-*x;
y_1=*y1-*y;
if(x_1== 0 && y_1 == 0){// 座標が一致したら停止
*move=0;
}
else{
// 座標がずれていたら近い方へ10ピクセル移動
if (x_1) x_1 < 0 ? *x-=10 : *x+=1; // X座標
if (y_1) y_1 < 0 ? *y-=10 : *y+=1; // Y座標
}
}
return 0;
}
/*******************************************************
ステージ1
*******************************************************/
void Start1(void){
MouseInput = GetMouseInput(); //マウスの入力状況を取得
static int x=250,y=130,x1=0,y1=0,x2=0,y2=0;
static int count=0,move=0;
White = GetColor( 255 , 255 , 255 );
/*******************************************
的をクリックしたら、点を加算、的を移動させる
*******************************************/
if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0){
move=1;
Movemato( &count, &move, &x, &y, &x1, &y1, &x2, &y2);
}
/************
BGM 再生処理
************/
if(playmusic==0){//playmusicが0ならば音楽を再生(playmusicを2で初期化)
StopSoundMem( Sound1 ) ;
playmusic=2;
}
if(playmusic==2)
PlaySoundMem( Sound2 , DX_PLAYTYPE_LOOP );//バックグラウンド再生
DrawGraph( 0 , 0 , back1 , FALSE ) ;
DrawGraph( x , y , mato1 , TRUE ) ;
playmusic=3;
DrawFormatString( 100, 100, White , "count=%d" , count );//文字列表示
}
int GetHitKeyStateAll_2(int GetHitKeyStateAll_InputKey[]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key[i]==1) GetHitKeyStateAll_InputKey[i]++;
else GetHitKeyStateAll_InputKey[i]=0;
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(TRUE);//ウィンドウモード
if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化
SetMouseDispFlag( TRUE ) ;
/*******色の定義*******************/
White = GetColor( 255 , 255 , 255 );
/*******画像のメモリ読み込み*******/
back1 = LoadGraph( "image/back(play).png" ) ;
back2 = LoadGraph( "image/back(menu).png" ) ;
mato1 = LoadGraph( "image/mato(play1).png") ;
/*******音声のメモリ読み込み*******/
Sound1 = LoadSoundMem( "Sound/backmusic/menu(music).wav" );
Sound2 = LoadSoundMem( "Sound/backmusic/play(music).wav" );
Sound3 = LoadSoundMem( "Sound/se/click1.wav" );
while(ProcessMessage()==0 && ClearDrawScreen()==0 && GetHitKeyStateAll_2(Key)==0 && Key[KEY_INPUT_ESCAPE]==0){
//↑メッセージ処理 ↑画面をクリア ↑入力状態を保存 ↑ESCが押されていない
if(menu==0){ //(menuが0の時)メニュー画面(トップ)
if(playmusic == 1){
PlaySoundMem( Sound1 , DX_PLAYTYPE_LOOP );//バックグラウンド再生
}
DrawGraph( 0 , 0 , back2 , FALSE ) ;
DrawString(100,100,"スペースキーでゲームスタート\n",White);
playmusic=0;
}
if(Key[KEY_INPUT_SPACE]==1 || menu==1){ //スペースキーが押された時、またはmenuが1の時(
Start1();
menu=1;
}
ScreenFlip();
}
DxLib_End();
return 0;
}
もう頭が働きません。
バイトにレポートにITパスポートに… 寝る間もほとんどなければ遊ぶ暇もなかなかなく。。。
ただストレスが貯まるばかりの毎日です。
ITパスポートを乗り越えたら夏休み 友人等と海へ行く予定もあるので、なんとか頑張りたいです。
過去に勉強をサボってきた事による大きな学力のハンデを背負ってはいるものの、専門学校、大学なりになんとか進学して、自分の限界に挑戦したいと本当に思いますね。
お前は口だけだみたいなことをずっと言われてきたけど、口だけじゃなくてやる気もある。理想の自分をいつも考えてる。 けど一つのことに集中出来ない。
なぜなら努力をしてこなかったから。
今、それを乗り越えようと頑張ってる。 それを知らずに小さい頃から当たり前に勉強してきた人が、偉そうに見下すようなことを言うのは人間として最低だおともう。