🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #21238

Re: Prosta gra w C#, zasada dzialania.

#21238
From: Wiktor Zychla
Date: Mon, 07 Dec 2009 12:55
60 lines
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-mail
References: <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