トップページ > 過去ログ > 記事閲覧
横スクアクションで行けない場所を作りたい
名前:ぽんしゃる 日時: 2012/06/20 14:21

今DXライブラリで横スクアクションゲームを作っているのですが、行けないところを作るのに詰まってしまいました。 配列変数でマップデータを作って0は通れる1は通れないように設定しました。 その後自力で色々やってみたんですが出来ませんでした。 以下のプログラムに1のところは移動できないような処理を追加してください。お願いします! #include "DxLib.h" int ore;//画像収納メモリ int orex=320;//自機の位置 int orey=430; int hantei[20]={0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0};//マップ void keisan(){ if (CheckHitKey(KEY_INPUT_RIGHT)==1){ orex=orex+5;//移動 } if (CheckHitKey(KEY_INPUT_LEFT)==1){ orex=orex-5; } if (orex >= 615)orex=615;//画面外に出れない if (orex <= 15)orex=15; } void byouga(){ DrawRotaGraph(orex,orey,1.0,0,ore,TRUE); } int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定 ore=LoadGraph("画像/キャラクタ改.png");//画像宣言 while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){ keisan(); byouga(); } DxLib_End(); // DXライブラリ終了処理 return 0; }

Page: 1 |

Re: 横スクアクションで行けない場所を作りたい ( No.1 )
名前:蝶灼 日時:2012/06/20 15:34

if (CheckHitKey(KEY_INPUT_RIGHT)==1 && hantei[20]!=1 ){ orex=orex+5;//移動 } if (CheckHitKey(KEY_INPUT_LEFT)==1 && hantei[20]!=1 ){ orex=orex-5; } にしたらどうでしょうか。
Re: 横スクアクションで行けない場所を作りたい ( No.2 )
名前:蝶灼 日時:2012/06/20 15:42

ごめんあさい。先走りました。 void keisan(int); void keisan(int hantei){ if (CheckHitKey(KEY_INPUT_RIGHT)==1 && hantei != 1){ orex=orex+5;//移動 } if (CheckHitKey(KEY_INPUT_LEFT)==1 && hantei != 1){ orex=orex-5; } if (orex >= 615)orex=615;//画面外に出れない if (orex <= 15)orex=15; } for(int i=0;i<20;i++){ hantei[i]; keisan(hantei[i]); } keisanの関数をすこしいじってみました。 これでどうでしょうか。
Re: 横スクアクションで行けない場所を作りたい ( No.3 )
名前:蝶灼 日時:2012/06/20 15:48

たびたびすみません。 for(int i=0;i<20;i++){ hantei[i];//←この行はいりませんでした。 keisan(hantei[i]); } なぜ書いたんだろう?? ちなみにこれをWinMainの keisan();と置き換えしてください。 アップしたら醜かったので ちょっと補助説明してみました。
Re: 横スクアクションで行けない場所を作りたい ( No.4 )
名前:ぽんしゃる 日時:2012/06/20 16:45

回答有難うございます! 早速やってみましたがうまくいきませんでした・・・ 移動が早くなってて1のところも移動できちゃいます。
Re: 横スクアクションで行けない場所を作りたい ( No.5 )
名前:ぽんしゃる 日時:2012/06/20 16:48

回答有難うございます! 早速やってみましたがうまくいきませんでした・・・ 移動が早くなり、1のところも移動できちゃいます。
Re: 横スクアクションで行けない場所を作りたい ( No.6 )
名前:ぽんしゃる 日時:2012/06/20 16:49

なんかまちがえて二回投稿してしまいました。 すいませんw
Re: 横スクアクションで行けない場所を作りたい ( No.7 )
名前:蝶灼 日時:2012/06/20 16:50

for(int i=0;i<20;i++){ if ( hantei[i]==0 ) keisan(); } keisan()関数はもどしてください。 でどうでしょうか? たびたびすみませんでした。 確かにさっきの記述はおかしいです。
Re: 横スクアクションで行けない場所を作りたい ( No.8 )
名前:ぽんしゃる 日時:2012/06/20 17:00

ありがとうございます! でも治りませんでした。 僕の貼り付ける位置が間違ってるんですかね? for(int i=0;i<20;i++){ if ( hantei[i]==0 ) keisan(); } は winmain内の関数呼び出しのところに書くんですよね? >keisan()関数はもどしてください。   どの時点まで戻せば良いのでしょうか・・・ 質問だらけですみません。
Re: 横スクアクションで行けない場所を作りたい ( No.9 )
名前:蝶灼 日時:2012/06/20 17:18

ごめんなさい。 ソースコード把握してなかったです。 きちんとしたものを今書きます。 ほんとごめんなさい。
Re: 横スクアクションで行けない場所を作りたい ( No.10 )
名前:ぽんしゃる 日時:2012/06/20 17:20

いえいえとんでもないです ここまでして下さってほんとに感謝です。ありがとうございます!!!!
Re: 横スクアクションで行けない場所を作りたい ( No.11 )
名前:蝶灼 日時:2012/06/20 17:23

void keisan(){ if (CheckHitKey(KEY_INPUT_RIGHT)==1){ for(int i=0;i<20;i++){ if ( hantei[i]==0 ) orex=orex+5;//移動; } } if (CheckHitKey(KEY_INPUT_LEFT)==1){ for(int i=0;i<20;i++){ if ( hantei[i]==0 ) orex=orex-5;//移動; } } if (orex >= 615)orex=615;//画面外に出れない if (orex <= 15)orex=15; } keisan()関数の中をかえてみました。 これでいけると思います。 変な思い込みをいてしまい迷惑かけました。
Re: 横スクアクションで行けない場所を作りたい ( No.12 )
名前:蝶灼 日時:2012/06/20 17:33

WinMainの中が一部抜粋だとおもっていたんですが そうではないようですね。 これでは、自分の位置が把握できないので 判定のしようがありません。 そのへんを何とかしないといけないです。
Re: 横スクアクションで行けない場所を作りたい ( No.13 )
名前:ぽんしゃる 日時:2012/06/20 17:34

なんだかいっぱいエラーが出ちゃいました・・・ なんかすみません keisan関数はプログラムでは15行目からです。 エラー E2206 C:\Users\win7\Desktop\depeデータ\test\testprogram.cpp 28: 不正な文字 '}' (0x8170)(関数 keisan() ) エラー E2141 C:\Users\win7\Desktop\depeデータ\test\testprogram.cpp 38: 宣言の構文エラー(関数 keisan() ) エラー E2139 C:\Users\win7\Desktop\depeデータ\test\testprogram.cpp 66: 宣言に ; がない(関数 keisan() ) エラー E2134 C:\Users\win7\Desktop\depeデータ\test\testprogram.cpp 66: 複合文に } がない(関数 keisan() )
Re: 横スクアクションで行けない場所を作りたい ( No.14 )
名前:ぽんしゃる 日時:2012/06/20 17:36

なるほど・・・自分の位置を把握するんですね。 ありがとうございます。
Re: 横スクアクションで行けない場所を作りたい ( No.15 )
名前:蝶灼 日時:2012/06/20 17:40

}の半角全角の違いかとおもいます。 確認してみてください。 ここのサンプルを参考してみてください。 ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N4
Re: 横スクアクションで行けない場所を作りたい ( No.16 )
名前:ぽんしゃる 日時:2012/06/20 17:47

}を見直したらエラー治りました。 URLありがとうございます。これみながらがんばってみます! 最後に質問いいでしょうか oreiti=orex/32; これで自分の位置割り出せてますかね?w
Re: 横スクアクションで行けない場所を作りたい ( No.17 )
名前:蝶灼 日時:2012/06/20 18:18

割り出せてます。 そのoreitiを hantei[oreiti] とうまく利用すれば、 できます。
Re: 横スクアクションで行けない場所を作りたい ( No.18 )
名前:ぽんしゃる 日時:2012/06/20 21:41

本当にありがとうございました!!!

Page: 1 |