Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1038069
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T14:55:43+00:00 2026-05-16T14:55:43+00:00

I am trying to make the game Asteroids. My issue I have right now,

  • 0

I am trying to make the game Asteroids. My issue I have right now, is if you press the UP Arrow key, it will move the “ship” 10 pixels up. And if you hit the LEFT Arrow key, it will turn the “ship” 5 degrees to the left, the issue I have comes into play when you turn left, or right. And then try to move up. It won’t move into the turned direction. It will just move the turned “ship” 10 degrees in the Y direction.

What I am thinking of doing is having a variable called direction, think of this variable as a circle with 360 degrees. What I am trying to do is everytime I hit the Left Arrow, it will subtract 5 from direction, which started at 0 and goes backwards from 360 and thus set it to 355. I would then divide 355 by 10 and get 35.5. Then I would divide 10 by 35.5 and get .355. I would then subtract .355 from 10 (moving up in the Y). And subtract it from 0 (moving left in the X). So I would be moving 9.645 up in the Y and moving 0.355 left in the X.

The issue I’m having is the “ship” in Asteroids I have is a Graphics.FillPie, which needs Ints to use as the Start Angle and Sweep angle, However as you can see I would have to be working with doubles or floats. I’m pretty sure I’m overcomplicating this and am pretty sure there is something 100 times simpler, I’m thinking something along the lines of Bresenham’s Line Algorithm. If anyone could help by suggesting something easier or a fix to my problem, it would be much appreciated. Thanks in advance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T14:55:44+00:00Added an answer on May 16, 2026 at 2:55 pm

    It sounds like you need to calculate heading vectors for the ship based on the its current orientation in radians. For example:

    double xVector = Math.Sin(orientationInRadians);
    double yVector = Math.Cos(orientationInRadians);
    

    Then use the left and right arrows to control the ship’s current orientation. Once you have the vector you can calculate the location of the ship that is 10 units away from its current position along the heading vector. First you need to scale the vector to a unit (length of 1) vector.

    double magnitude = sqrt(xVector*xVector + yVector*yVector);
    double unitVectorX = xVector/magnitude;
    double unitVectorY = yVector/magnitude;
    

    Now you have a vector that is 1 unit long but still points in the ship’s current orientation. Next move the ship with positionX and positionY as current its coordinates.

    double distanceToTravel = 10;
    double newPositionX = positionX + unitVectorX*distanceToTravel;
    double newPositionY = positionY + unitVectorY*distanceToTravel;
    

    You’ll want to track the ship’s position and orientation with doubles or floats even if you end up rendering with a system that only allows ints. You shouldn’t store the current position and orientation using the rendering engine’s precision or you will start to see strange jumps and pauses as you move and rotate. Also, using the above you can make distanceToTravel non-constant (imagine accelerating while the key is pressed instead of moving a fixed distance from a key press).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am just messing around trying to make a game right now, but I
I've been trying to make an AI for an asteroids game but have become
Trying to make simple minesweeper game in python, but have one problem. I have
I am currently trying to make a game in Android. I have this piece
I have read a book and am trying to make a game of tic-tac-toe
Alright guys i'm trying to make an Asteroids type game and I need to
I'm learning C# and I'm trying to make a game and I have a
I am trying to make a matching game for learning arabic. I have populated
I am trying to make a game engine. I have made the Game class
So I am currently trying to make the game Asteroids for a class. The

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.