Gringorius Geschrieben 22. Mai 2003 Teilen Geschrieben 22. Mai 2003 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 22. Mai 2003 Teilen Geschrieben 22. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Diablo999 Geschrieben 23. Mai 2003 Teilen Geschrieben 23. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gringorius Geschrieben 23. Mai 2003 Autor Teilen Geschrieben 23. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Diablo999 Geschrieben 23. Mai 2003 Teilen Geschrieben 23. Mai 2003 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Diablo999 Geschrieben 23. Mai 2003 Teilen Geschrieben 23. Mai 2003 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 } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.