Article View: alt.pl.comp.lang.csharp
Article #21238Re: Prosta gra w C#, zasada dzialania.
From: Wiktor Zychla
Date: Mon, 07 Dec 2009 12:55
Date: Mon, 07 Dec 2009 12:55
60 lines
2487 bytes
2487 bytes
> pisze wlasnie prosta gierke w C#.
>
> Gierka to bedzie polaczenie idei SpaceInvaders i Robbo :-)
>
> Do rzeczy.
>
> Wydaje mi sie, ze dzialanie engine mojej gry to bedzie cos takiego:
>
> 1. Tablica 2D z PictureBox'ami.
>
> 2. Timer ustawiony na jakies 200ms <- to sie jakos wyreguluje.
>
> 3. Za kazdym tickiem timera, engine przeliczy jakie PictureBox'y maja byc
> umieszczone w mojej Tablicy (czy to bedzie postac mojego ludka, czy
> promien lasera, czy kamien itp).
>
> 4. Nastepnie engine przeiteruje po Tablicy i wyswietli wszystkie
> PictureBox'y na panelu.
>
> Dobrze kombinuje?
niekoniecznie.
grafiki nie robi się na timerach, tylko pętlą główną aplikacji, która
generuje ramkę na podstawie czasu jaki upłynął od wygenerowania poprzedniej
ramki.
poniżej pseudokod:
Form1 f = new Form1();
while ( f.Created )
{
f.Idle();
f.Invalidate();
Application.DoEvents();
}
...
class Form1
{
DateTime lastFrame = DateTime.Now;
public void Idle()
{
TimeSpan lastFrameSpan = DateTime.Now - lastFrame;
/* od ostatniej ramki upłynęło lastFrameSpan */
// aktualizuj pozycje obiektów na podstawie kwantu czasu jaki upłynął
// zapamiętaj czas wygenerowania ramki
lastFrame = DateTime.Now;
}
...
}
Wiktor Zychla
Technical Details
Message-ID:
<hfiu3t$jn9$1@atlantis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder2.news.weretis.net!feeder.erje.net!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailReferences:
<hfin3f$n9u$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder2.news.weretis.net!feeder.erje.net!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: "Wiktor Zychla" <user@nospam.com.eu> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: Prosta gra w C#, zasada dzialania. Date: Mon, 7 Dec 2009 13:55:05 +0100 Organization: TP - http://www.tp.pl/ Lines: 61 Message-ID: <hfiu3t$jn9$1@atlantis.news.neostrada.pl> References: <hfin3f$n9u$1@news.onet.pl> NNTP-Posting-Host: 195.116.95.201 Mime-Version: 1.0 X-Trace: atlantis.news.neostrada.pl 1260190653 20201 195.116.95.201 (7 Dec 2009 12:57:33 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Mon, 7 Dec 2009 12:57:33 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5843 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit