Này, tôi có một lớp sprite và tôi đang làm cho nó xoay 360 độ mỗi giây đồng thời tăng tốc độ. Tuy nhiên, cuối cùng tôi lại đi theo hình xoắn ốc thay vì ở trong vòng tròn ban đầu được hình thành bởi sự quay liên tục 360 độ mỗi giây.
Làm thế nào tôi có thể giải quyết vấn đề này? Sprite cần phải đi nhanh hơn và đi trên cùng một con đường.
Mã này như sau:
box.Accelerate(10*Window.GetFrameTime());
box.Turn(360.0*Window.GetFrameTime());
câu trả lời hay nhất
Nếu bạn muốn sprite khoanh tròn, hãy đặt nó vào mã. Ví dụ,
thời gian thả nổi = Window.GetFrameTime();
góc += tốc độ * (thời gian - LastTime);
thời gian cuối cùng = thời gian;
float x = sinf(góc), y = cosf(góc);
box.SetPos(50*x + center.x, 50*y + center.y);
box.Turn(góc + QUARTER_TURN);
Về c++ - Cách tăng tốc độ sprite mà không kết thúc hình xoắn ốc thay vì đi vòng tròn, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/6390133/