Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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

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

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

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.