提示コードですが画面の中心を中心に周回するコードなのですが**移動しながら周回させる方法が知りたいです。**提示コードのようにキー入力を受け付けて実装しまたがこれだと周回自体が悪くなるので実装できません。回転を維持したまま移動させる方法が知りたい。
提示コードは自分で記述しました。内容は理解していますが実装法がわかりません。
cpp
1 2#include "Game.hpp" 3#include "Entry.hpp" 4#include "Input.hpp" 5 6#include <iostream> 7 8#include "DxLib.h" 9 10#define PI ((float)3.14159265359) //円周率 11#define CELL ((float)48.0f) 12 13 14Game::Game(Entry* entry) 15{ 16 owner = entry; //Entry クラス 17 18 19 20 mHandlePlayer_ = LoadGraph("Assets/Player.png"); //プレイヤー 21 position = glm::ivec2(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); //描画座標 22 23 movePosition = glm::ivec2(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); //移動座標 24 25} 26 27 28//計算 29void Game::Update() 30{ 31#define SPEED ((float)5.0f) 32 if (owner->input->getKeyDownHold(KEY_INPUT_LEFT) > 0) 33 { 34 movePosition.x += -SPEED; 35 } 36 else if (owner->input->getKeyDownHold(KEY_INPUT_RIGHT) > 0) 37 { 38 movePosition.x += SPEED; 39 } 40 41 42 angle += (PI / 50); 43 position.x = (cos(angle) * 50) + movePosition.x; 44 position.y = (sin(angle) * 50) + movePosition.y; 45 46 if (angle > PI * 2) 47 { 48 angle = 0; 49 } 50 51 52 53 54} 55 56//描画 57void Game::Draw() 58{ 59 DrawGraph(position.x, position.y, mHandlePlayer_, TRUE); 60} 61 62 63Game::~Game() 64{ 65 66} 67
> 提示コードのようにキー入力を受け付けて実装しまたがこれだと周回自体が悪くなるので実装できません。
悪くなるといわれても、現状の動作、期待している動作がわかりません。
動作する状態のコードでもないので、期待する動きや現状の動きなど画像を用意したほうが回答が付きやすいと思います。
(コードがどのような動きを期待しているのかわからないため、何が悪いなど判断ができない)