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
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>