前提・実現したいこと
キーを入力することで動きを変えるものを作ろうとしています。
この処理を関数にすることが必要です。
エラーメッセージの意味がわからないので何をどう直せばいいのかがわからないです。
発生している問題・エラーメッセージ
assigning to 'Pacman' (aka 'struct Pacman') from incompatible type 'int' pac = pacKeyIn(pac); // キー入力に反応する
該当のソースコード
c言語(長くなるので関係ない部分は省きました)
1 2typedef struct Pacman { 3 double x, y; 4 double size; 5 double dx, dy; 6} Pacman; 7 8int pacKeyIn(Pacman pac) { 9 10 hgevent *event = HgEventNonBlocking(); 11 12 if(event != NULL && event->type == HG_KEY_DOWN) { 13 14 switch(event->ch) { 15 16 case 'i': pac.dx = 0.0; pac.dy = PAC_STEP; break; 17 case 'k': pac.dx = 0.0; pac.dy = -PAC_STEP; break; 18 case 'j': pac.dx = -PAC_STEP; pac.dy = 0.0; break; 19 case 'l': pac.dx = PAC_STEP; pac.dy = 0.0; break; 20 } 21 } 22 return 0; 23} 24 25//(((この間に他の関数などが並んでますが長くなるので省きました))) 26 27int main() { 28 29 HgOpen(400.0, 400.0); 30 31 Pacman pac; // Pacman 構造体を用意する 32 pac=pacSetup(200.0, 200.0, 20.0, -8.0, 5.0); 33 34 35 while(1) { 36 37 HgClear(); // 画面を消去 38 pac = pacKeyIn(pac); // キー入力に反応する (((ここがエラーの部分です))) 39 pac = pacMove(pac); // 移動させる 40 41 if( pac.dx < 0.0 ) { 42 pac_left(pac); // 描画する 43 44 } else { 45 pac_right(pac); 46 } 47 48 if( hitWall(pac) == 1 ) break; // 衝突判定 49 50 HgSleep(0.1); // 少し待つ 51 } 52} 53 54
試したこと
エラーメッセージを翻訳したり、コピーして調べましたがそれでも意味がわかりませんでした。
補足情報
main以降は教材のままなので間違っていないと思います。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。