# include // OpenSiv3D v0.6.10 void Main() { // 背景の色を設定する | Set the background color Scene::SetBackground(Palette::Lemonchiffon); Vec2 p{ 100.0,100.0 };//x,y = 100, 100 で初期化 int W_WIDTH = Scene::Width(); int W_HEIGHT = Scene::Height(); float heroSpeed = 5.0; Color heroColor = Palette::Red; //単位ベクトル //ベクトルの長さ、ベクトルで計算できるよ! Vec2 ul{ -1.0, -1.0 }, ur{ +1.0, -1.0 }, dl{ -1.0, +1.0 }, dr{ +1.0, +1.0 }; //方向だけあってるベクトルを用意 ul.x = ul.x / ul.length(); ul.y = ul.y / ul.length(); ur.x = ur.x / ur.length(); ur.y = ur.y / ur.length(); dl.x = dl.x / dl.length(); dl.y = dl.y / dl.length(); dr.x = dr.x / dr.length(); dr.y = dr.y / dr.length(); Print << ul.length(); while (System::Update()) { if ((KeyLeft + KeyUp).pressed()) p = p + heroSpeed*ul; else if ((KeyLeft + KeyDown).pressed()) p = p + heroSpeed * dl; else if ((KeyRight + KeyUp).pressed()) p = p + heroSpeed * ur; else if ((KeyRight + KeyDown).pressed()) p = p + heroSpeed * dr; else if(KeyLeft.pressed()) p.x = p.x - heroSpeed; else if(KeyRight.pressed()) p.x = p.x + heroSpeed; else if(KeyUp.pressed()) p.y = p.y - heroSpeed; else if (KeyDown.pressed()) p.y = p.y + heroSpeed; Circle{p, 10}.draw(heroColor); } }