Ucze się C# i aby lepiej przyswoić wiedze pisze gre w Snake'a mam tylko jeden problem. Nie wiem jak zrobic aby wąż cały czas się poruszal i nie czekał na wcisnięty klawisz w którą strona ma skręcać. Ma ktoś może pomysł jak to zrobic??
Jakbyś wrzucił kawałek kodu, to byłoby łatwiej...
bool napisał(a)
Ma ktoś może pomysł jak to zrobic??
Użyć pętli.
public void Action(Snake sk)
{
ConsoleKeyInfo cki;
int move=2;
int x, y;
x = sk[0].GetCoordinate.x;
y = sk[0].GetCoordinate.y;
cki = Console.ReadKey(true);
if (cki.Key == ConsoleKey.UpArrow)
{
x--;
move = sk.MoveUp(DisplayBoard[x, y]);
}
else if (cki.Key == ConsoleKey.DownArrow)
{
x++;
move = sk.MoveDown(DisplayBoard[x, y]);
}
else if (cki.Key == ConsoleKey.LeftArrow)
{
y--;
move = sk.MoveLeft(DisplayBoard[x, y]);
}
else if (cki.Key == ConsoleKey.RightArrow)
{
y++;
move = sk.MoveRight(DisplayBoard[x, y]);
}
try
{
if (move == 1)
{
this.SetSnake(sk);
}
if (move == 0)
{
this.SetSnake(sk);
}
if (move == -1)
{
}
else
{
this.SetSnake(sk);
}
}
}
W main mam w petli
while (true)
{
br.Action(sk);
br.PrintBoard();
}
cki = Console.ReadKey(true);
...ify
Oto yest zuo! Popraw na
if (Console.KeyAvailable)
{cki = Console.ReadKey(true);
...ify}
Btw. Mam nadzieję że masz szybki refleks? :D
(zrozumiesz jak uruchomisz :] )
http://msdn.microsoft.com/en-us/library/system.console.keyavailable.aspx
Tutaj mam najlepsze rozw , dzieki za help
-
Czym się różni to rozwiązanie od mojego? 0_o Dokładnie tą samą funkcję podałem...
-
Trzeba było poszukać wcześniej a nie pisać na forum :P
ja na laborce (1,5h) musialem kiedys napisac weza w oparciu o kontrolki panel, do tego kazdy segment musial miec nieco inny odcien, tak ze caly waz sprawial wrazenie gradientowanego :) przy uzyciu timera
oczywiscie jedzonko i cala logika byla
ale polecam sprobuj porobic sobie laborki z tej stronki http://www.mini.pw.edu.pl/~mossakow/courses/pwsw2/index.html
laborki sa tak pomyslane zeby zmusily do przecwiczenia odpowiednich elementow/funkcji .net
niektore latwe nie sa, ale walcz :)
Dzieki za przykłady. Jestes z MiNI?
juz na szczescie czas przeszly jest bardziej stosowny :)
ale, tak, konczylem ten wydzial