お世話になります。
初歩的な質問すぎて恐縮ですが、キャラクターを動かす
http://dixq.net/g/03_01.html
この所で普通にキャラを動かすことはできました。
が。
背景をいれたいのですがもう一つ .cpp を造って背景のソースを入力して実行しても
エラーがでてしまします。。。
どうやって背景を導入すればいいのか教えてください。<m(__)m>
背景導入方法・・・
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 背景導入方法・・・
その問題のあるソースコードを貼って頂けますか?
ソースコードはcodeタグをご利用下さい。 http://dixq.net/board/board.html#k10
ソースコードはcodeタグをご利用下さい。 http://dixq.net/board/board.html#k10
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 背景導入方法・・・
別トピックより転記サせて頂きます。
http://dixq.net/forum/viewtopic.php?f=3&t=10504
http://dixq.net/forum/viewtopic.php?f=3&t=10504
↓の者です さんが書きました:↓のソースは、#include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey(){ char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る for( int i=0; i<256; i++ ){ if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら Key[i]++; // 加算 } else { // 押されていなければ Key[i] = 0; // 0にする } } return 0; } int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定 int x=320, y=240; int Handle = LoadGraph("主人公.png"); // while(裏画面を表画面に反映, メッセージ処理, 画面クリア, キーの更新) while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0 ){ if( Key[ KEY_INPUT_RIGHT ] >= 1 ){ // 右キーが押されていたら x++; // 右へ移動 } if( Key[ KEY_INPUT_DOWN ] >= 1 ){ // 下キーが押されていたら y++; // 下へ移動 } if( Key[ KEY_INPUT_LEFT ] >= 1 ){ // 左キーが押されていたら x--; // 左へ移動 } if( Key[ KEY_INPUT_UP ] >= 1 ){ // 上キーが押されていたら y--; // 上へ移動 } DrawRotaGraph( x, y, 1.0, 0.0, Handle, TRUE ); // x,y の位置にキャラを描画 } DxLib_End(); // DXライブラリ終了処理 return 0; }
これとこれです。#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode( TRUE ) ; // ウインドウモードに変更 if( DxLib_Init() == -1 ) return -1; // DXライブラリ初期化処理 エラーが起きたら終了 LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ; LoadGraphScreen( 0 , 0 , "主人公.png" , TRUE ) ; WaitKey() ; // 結果を見るためにキー待ち(『WaitKey』を使用) DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
全くわかりませぬ・・・
ぱにしん さんが書きました:この二つが別ファイルにそれぞれあるってことですか?
windowsプログラミングではWinMain関数から始まる、という事は理解されているでしょうか?
それ以前に同じ名前の関数は二つ以上定義できません。
(WinMain関数はプロトタイプ宣言されているのでちょっと方向性が違うかも知れませんが)
とりあえずどちらか一方の中に纏めましょう。
主人公の描画処理が二つになってしまいそうなので片方を消します。
オフトピック詳しくは無いんですが描画のたびに画像を読み込む(?)
loadgraphscreen関数は向かないと思いますが・・・
追記
書き忘れてましたが、出来るだけ元のトピックの続きから使うようにしてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 背景導入方法・・・
背景はLoadGraph()してDrawGraph()します。
まず複数のファイルに分けて書くのは初心者には難しいので、当面は最初のプログラムに書き加えてみましょう。[追記]
のちのち関数分割やファイル分割を徐々に学びましょう。
[更に追記]
名前を途中で変えると誰の質問か分からなくなるので名前の統一をお願いします。
まず複数のファイルに分けて書くのは初心者には難しいので、当面は最初のプログラムに書き加えてみましょう。[追記]
のちのち関数分割やファイル分割を徐々に学びましょう。
[更に追記]
名前を途中で変えると誰の質問か分からなくなるので名前の統一をお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 背景導入方法・・・
とりあえず閉鎖された方のトピックで
主人公の描画処理ですよね?
とりあえず、主人公が歩くソースの意味は理解されているでしょうか。
歩かない方の描画は必要ありませんよね?
と質問されていたので・・・でどっちの消せばいいです?
主人公の描画処理ですよね?
とりあえず、主人公が歩くソースの意味は理解されているでしょうか。
歩かない方の描画は必要ありませんよね?