Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!

Kann mir bitte jmd helfen...?

Mir reicht 1 Timer nicht und ich hab mich gefragt ob ich denn nicht einen Timer festlegen kann in einer Struktur, damit ich später, wenn ich den Datentyp als Array deklariere jedem einzelnen ausm array ein extra ereignis zuweisen kann.

Oder bin ich aufm Holzweg?

Es geht mir darum:

10 spatzen (struct ding spatz[10]) sollen übern Bildschirm flattern.

Damit jeder Spatz seine eigene Geschwindigkeit hat und NCIHT über denselben Timer gesteuert werden, möchte ich eben in der struct festlegen das ihnen allen ein eigenes ereignis timer zusteht.

geht das oder bin ich auf dem Holzweg?

ach ja:

Borland c++ builder 6, win-anwendung.

Geschrieben
Original geschrieben von Gringorius

ach ja:

Borland c++ builder 6, win-anwendung.

Falsches Forum.

Bitte beim nächsten Mal darauf achten.

--> Verschoben: C++: Compiler, IDEs, APIs

Geschrieben

Hab ich recht das es hier um Grafikprogrammierung geht???

Wenn ja, gibt es eine sehr schöne Möglichkeit die Spatzen unabhängig

voneinander zu bewegen und ein sehr viel besseres Ergebnis zu erziehlen

als mit Timern.

Und zwar verwendest du die IDLE-Time zum Zeichnen deiner Szene, immer

wenn keine Message ankommt (PeekMessage) zeichnest du deine szene.

Damit die Viecher jetzt animiert sindweißt du deiner Struktur eine Geschwindigkeit

zu mit der sie sich bewegen sollen (z.B. 3 Pixel alle 10 ms).

In deiner Zeichenroutine berechnest du die Zeit seit dem letzten Aufruf und

errechnest dir die Strecke die jedes Viech zurücklegen muss...

Beispiel:

1: 3p alle 10 ms

2: 4p alle 10 ms

Es sind seit dem letzten Aufruf 30 ms vergangen

- 1 wird um 3*3 pixel weiterbewegt: 9 pixel

- 2 wird um 4*3 pixel weiterbewegt: 12 pixel

Mit dieser Möglichkeit funktionieren übrigens die meisten Grafikengines.

Hoffe ich habe dir mehr geholfen als verwirrt.

Gruß

Diablo999

Geschrieben

Sorry @ Klotzkopp wg. falschem Forum... versuche mich zu bessern :)

Danke erstmal für die Antwort Diablo!

Ich vermute was Du unter Grafikprogrammierung verstehst sprengt den Rahmen dessen, was ich mir als Autodidakt bisher beibringen konnte :(

Also, ich glaube zu verstehen wie es funktionieren soll, in der Hilfe finde ich unter "idle" aber leider nichts, das mir weiterhilft. Von daher fehlen mir sozusagen die Mittel, auch wenn ich mir vorstellen kann wie es aussehen könnte.

Wenn du Zeit und Muße hast, könntest du mir bitte ein Beispiel aufschreiben?

Also direkt auf das "idle" bezogen, oder wie ich meinen struct aufgerufen werden muss und was ich in der struct zu beachten habe......?

Möglichst nicht zu komplex :)

Gruß, Gorgin

Geschrieben

Die Idle-Time ist die Zeit die einem Prozess zur Verfügung steht wenn er gerade

keine Nachrichten abarbeitet.

Die Messageloop sieht dann in etwa so aus


  while (!bExit)

  {

    if(PeekMessage(...))

    {

       // Hier wird die Nachricht ausgewertet

    }

    else

    {

       // Hier ist der Teil in dem alle IDLE-Sachen ausgeführt werden, eben z.B. 

       // zeichnen

    }

  }

Ich hoffe du programmierst WinAPI und nicht MFC oder sowas, weil da hab ich leider keine Ahnung ob du die IDLE-Time nutzen kannst oder wie das geht?

Diablo999

Geschrieben

Sorry, hab deinen struct vergessen:

so in etwa


struct Viech

{

  // Hier noch Name ujnd Adresse oder was weiß ich... Farbe vielleicht

  int x,y;  // Die aktuelle Position am Bildschirm

  int xSpeed, ySpeed; // Die Bewegungsgeschwindigkeit

}

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...