歩くプログラム

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

歩くプログラム

#1

投稿記事 by 初級者☆ » 15年前

いきなりですみません。プログラム作成の勉強によくこのサイトを使わせてもらっています。
実際、初心者で勉強中の身です。

今回は少し質問があって書き込みをしまさいた。

サイトではフラグを立て、一定間隔は動けないようになっていますが、知り合いが違う感じでプログラムを組んでいたので、今の自分ではどう違うのかがよくわかりません。詳しく解説してくれる人を捜しています。よろしくお願いします

知り合いのプログラム(許可は得てます)
void PlayerControl(){

if(Key[KEY_INPUT_RIGHT]==1){
Player.x+=4.0f;
if(Player.x>630.0)
Player.x=630.0;
}
if(Key[KEY_INPUT_UP]){
Player.y-=4.0f;
if(Player.y<15.0)
Player.y=15.0;
}
if(Key[KEY_INPUT_DOWN]==1){
Player.y+=4.0f;
if(Player.y>465.0)
Player.y=465.0;
}

if(Key[KEY_INPUT_F12]==1){
hp_i=chr_hp;
}
if(Key[KEY_INPUT_F1]==1&&bom_flag==0){
bom_flag=1;
cutin_flag=1;
cutin_back=MakeGraph(640,480);//仮に画像をおく
GetDrawScreenGraph(0,0,640,480,cutin_back) ;//現在の表示されている画面をコピー
bom_time_cnt=GetNowCount();//ボム使用時の時間を取得
/*
for(int s=0;s<ENEMY_TOTAL_NUM;s++){//全敵100体分
EnemyHP=0;;
enemy.flag=0;
stg_gakiha_count++;
}*/
}
DrawGraph((int)Player.x-16,(int)Player.y-24,img_player[0],TRUE);
}

サイトのプログラム

if(ch.x%32==0 && ch.y%32==0){ //座標が32で割り切れたら入力可能
ch.walking_flag=1; //歩くフラグを立てる。
if ( Key[ KEY_INPUT_UP ] == 1 ) //上ボタンが押されたら
ch.muki=0; //上向きフラグを立てる
else if( Key[ KEY_INPUT_LEFT ] == 1 ) //左ボタンが押されたら
ch.muki=1; //左向きフラグを立てる
else if( Key[ KEY_INPUT_DOWN ] == 1 ) //下ボタンが押されたら
ch.muki=2; //下向きフラグを立てる
else if( Key[ KEY_INPUT_RIGHT] == 1 ) //右ボタンが押されたら
ch.muki=3; //右向きフラグを立てる
else //何のボタンも押されてなかったら
ch.walking_flag=0; //歩かないフラグを立てる
}

if(ch.walking_flag==1){ //歩くフラグが立っていたら
if (ch.muki==0) //上向きならch.y座標を減らす
ch.y--;
else if(ch.muki==1) //左向きならch.x座標を減らす
ch.x--;
else if(ch.muki==2) //下向きならch.y座標を増やす
ch.y++;
else if(ch.muki==3) //右向きならch.x座標を増やす
ch.x++;
}

ch.img=image[(ch.x%32+ch.y%32)/8 + ch.muki*4]; //画像をセット

DrawGraph( ch.x , ch.y , ch.img , TRUE ) ;//画像を描画

ScreenFlip();
}

どう違うのでしょうか?またプログラム的にどういうゲームに向いているのか教えてください。よろしくお願いします。

Dixq (管理人)

Re:歩くプログラム

#2

投稿記事 by Dixq (管理人) » 15年前

お友達のプログラムだと、押した分だけ進みますよね。
でもうちのサイトのは1区間単位で移動します。
うちのサイトのプログラムは昔のRPGを想定してます。FF1やドラクエ1、ポケモンみたいな。
そうではなくボンバーマンねような動きをさせたいなら一区間ずつではなく押した分だけ動く必要があります。
自分が作りたいゲームに合わせて作り分ける必要がありますね。

初心者☆

Re:歩くプログラム

#3

投稿記事 by 初心者☆ » 15年前

ありがとうございます。

non

Re:歩くプログラム

#4

投稿記事 by non » 15年前

お友達のプログラムは、同じ画像が4ドットずつ移動するのかなぁ?
すると歩いているようには動かないのでは?
F1やF2を押したとき何をやってるかはしらないけど。

初心者☆

Re:歩くプログラム

#5

投稿記事 by 初心者☆ » 15年前

いえ、原理はまだよく分からないのですが、方向キーを素早く動かすと立ったまま動くのですが、一定間隔押していると画像が走っているように動きます。その点はまだ学習中です

閉鎖

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