C# poruszanie obiektów na ukos w grze

0

Witam.
Uczę się programować w C# i postanowiłem stworzyć pierwszą moją grę, jednak mam pewien problem: do mojej gry potrzebuję algorytmu poruszania się na ukos. Chodzi mi o PŁYNNE poruszanie się w KAŻDĄ lokacje na mapie. Szukałem w internecie ale nie znalazłem nic co mogłoby mi pomóc. Czy ktoś z forum mógłby mi doradzić?

0

Potrzebujesz nie algorytmu, a matematyki - właściwie to fizyki i wektorów.
http://gamedev.stackexchange.com/questions/69497/how-to-move-an-object-along-a-vector

0

Masz na myśli ten z trygonometrią czy ten z 4 zmiennymi?

0

A jak to na przykład robi paint? Chodzi mi o rysowanie linii.

0

Kod w JavaScript.
Rysowanie prostokąta, który porusza się po przekątnej.

Game.update = function () {
    var d = new Date();
    Game.rectanglePosition = d.getTime() % Game.canvas.height; // ilosc milisekund od 1970 
};

Game.draw = function () {
    Game.canvasContext.fillStyle = "blue";
    Game.canvasContext.fillRect(Game.rectanglePosition, Game.rectanglePosition, 50, 50); // 
};
0

Dzięki za ten kod, już zrozumiałem :). i jeszcze raz bardzo wszystkim dziękuje, gdyż temat ten męczył mnie od 5-7 tygodni :(.

0

Podałem kod w JavaScript, bo pisałem coś podobnego jakiś czas temu. Ostatnio czytałem o animacjach w C# i aplikacjach WPF.
Podam kod poruszającego się prostokąta.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Media.Animation;

namespace Rectangle
{
public partial class SimpleAnimation : Window
{
public SimpleAnimation()
{
InitializeComponent();
DoubleAnimation da = new DoubleAnimation();
da.From = 0;
da.To = 200;
da.Duration = TimeSpan.FromSeconds(5);
da.AutoReverse = true;
da.RepeatBehavior = RepeatBehavior.Forever;
rect1.BeginAnimation(Canvas.LeftProperty, da);
rect1.BeginAnimation(Canvas.TopProperty, da);
}
}
}
 

i xaml:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Canvas>
        <Rectangle x:Name="rect1" Width="100" Height="50"
Fill="Blue"/>
    </Canvas>
</Window>

1 użytkowników online, w tym zalogowanych: 0, gości: 1