Framabhängig bewegen
-
sicher nicht im extra thread, zuviel aufwand würde ich sagen.
das prinzip ist sehr einfach.
du hast deine realclock (gettickcount)
eine endlosschleife
while(true)
{
}darin dann dein Render();
und eine schleife, die die logic so oft aufruft, bis sie in ihren zeitschritten wieder gleichauf ist mit deiner realclock
also:
while(m_LogicTime<GetTickCount())
{
m_LogicTime+=LogicTimeDelta; //z.B. 50ms
}das wäre alles.
wie du sehen kannst, wird die logic immer in gleichen zeitabständen aufgerufen sofern sie die LogicTime benutzt und falls die framerate höcher ist als das LogicTimeDelta, dann wird die logic übersprungen, was ja auch richtig ist.dinge die unabhängig von der logic sein können, wie z.B. der mauscursor,partikel,texturanimationen z.B. wellen können ja noch mit der rendertime (gettickcount) animiert werden. aber falls du ein realplay brauchst oder desgleichen, dann mußte das auch mit dem logicTime zeug machen.
in dem thread den SnorreDev meint, hab ich auch nen quellcode gepostet.
rapso->greets();
-
rapso schrieb:
jedem in dem die logic frameabhängig läuft, da haste räscht.
Vollkommen egal wie die Logik läuft, bei 10 fps kann man ja nicht mal mehr irgendwas richtig anvisieren. Sowas spiele ich dann nicht mehr.
-
wenn du nur spiele spielst bei denen du zielen mußt... du armer
rapso->greets();
-
rapso schrieb:
wenn du nur spiele spielst bei denen du zielen mußt... du armer
rapso->greets();
a) ich sagte "anvisieren"
b) bei welchen Spielen muss man das denn nicht, guckt man da nur zu?Also denk doch erstmal nach...
-
bei wirtschatssimulationen, RTS, RPGs, advantures... muss man nichts anvisieren, der hardware mousecursor ist ja sowieso flüssig, da darf die grafik ruhig ruckeln, das spielen trotzdem viele leute auf ihren notebooks mit ihren SIS-scheiss intergrated 8mb grakas.
bestes beispiel wären vielleicht die siedler oder patrizier reihen, da ruckelt alles auf solchen notebooks, außer der maus (und der logic), das einzige was man flüssig braucht.sei also net so vorlaut
rapso->greets();
-
Habe ich es richtig verstanden?
whil(TRUE) { UPDATE_OBJEKTE_ALLE_50_MILLISEKUNDEN() RENDER_BEI_JEDEM_DURCHLAUF() }
-
anstatt
UPDATE_OBJEKTE_ALLE_50_MILLISEKUNDEN()
mußte
while(m_LogicTime<GetTickCount())
{
m_LogicTime+=LogicTimeDelta; //z.B. 50ms
}also so lange die logiczeit updaten bis du mit der logic gleichauf mit der "echtzeit" bist.
-
Bau ich gleich mal in mein Programm ein.
-
rapso schrieb:
bei wirtschatssimulationen, RTS, RPGs, advantures...
Mit der Maus die Einheiten oder Buttons.
Also denk doch erstmal nach...
-
die werden nicht mit der mouse bewegt sondern von der logic und falls dir der hardware cursor nicht flüssig genug ist um etwas zu selektieren, solltest du mal nachdenken ob es nicht an dir liegt.. das ist alles ganz anders als bei deinem moorhuhn... also sei net so vorlaut
rapso->greets();
-
Ich hab auch ein Notebook mit Sis graks (wie du sagst) aber man kann sie von 8mb auf ganze 64 stellen (shared memory)! Bringt aber trotzdem nix!
Mein eigentliches anliegen ist, ob irgendwer weiß wie man eine Textur in dx2 lädt!(IDirect3DTexture) Ich sags gleich: is scheißkompliziert! mit queryinterface und so!
Ich wollt nämlich ne kleine Engine für 2d spiele coden und bei der brauch ich kein dx9 aber ich hab nur das sdk und das von dx 1-3 (Standartmäßig in vc++)Es wär halt blöd wenn man dx9 für ein luschi 2d game braucht!
Also wenn wer weiß wies geht schreibts mir!
Nochwas hab grad ein neues Projekt rennen! Autospiel von oben! Hab schon ne kleine demo in vb gecodet(!falls man das so nennen kann!) und wills jetzt in c++ mit dx2 wenns geht schreiben! Wahrscheinlich muss ichs sowieso mit dx9 schreiben!
Falls wer interesse hat meldet euch bei manuel_h87@yahoo.de !! danke!
-
Imho ist es mit DX7 einfacher, als mit DX2, da sich da doch einiges getan hat
(seither hat sich aber meines Wissens bei DX im DirectDraw Bereich nichts mehr getan, oder doch?)
-
rapso schrieb:
etwas zu selektieren
Da muss man auch anvisieren.
Also denk doch erstmal nach...
-
Anonymous schrieb:
rapso schrieb:
etwas zu selektieren
Da muss man auch anvisieren.
Also denk doch erstmal nach...
VISIEREN kann man nur durch ein Visier...
Kimme und Korn, klärchen!??Und das ist in "Die Siedler" eher selten zu sehen...
Oder Du setzt Dir'n Motorradhelm auf...!!
Muahahahahahaha...
-
laut lex: ein ziel ins auge nehmen.
aber vielleicht kann der unregestrierte ja auch einen button bei unter 10fps nicht mehr erkennen... menüs sind immer so performanceabhängig, besonders die von patrizia *lol*
rapso->greets();
-
rapso schrieb:
laut lex: ein ziel ins auge nehmen.
Eben, und bei Allen Spielen muss man das angezeigte "ins Auge nehmen" (sonst bräuchte es nicht angezeigt werden, gelle?). Wenn das darumruckelt geht das nicht so gut, das das Auge an "glatte" Bewegungsabläufe gewohnt ist (in der Natur findet man auschliesslich solche). Also ich hab Recht und ihr nicht, Affe tot. Streitet ihr eigentlich immer so lange, wenn ihr falsch liegt? Naja ihr könnt den anderen ja weiter erzählen, das man mit 10fps wunderbarstens zock0n kann.
Also denk doch erstmal nach...
-
lesen ist wohl nicht deine stärke, aber ik wiederholle es gerne für dich.
es ist s*heiss egal wenn ein menü mit 3fps läuft, hauptsache die logic dahinter läuft stabil, aber wiedersprich mir ruhig falls du unfähig bist mit dem _flüssigen_ hardwarecursor auf einen button zu klicken der 3fps hat und mehr muss man in z.B. patrizia 2 nicht machen.
also sei net so vorlaut
rapso->greets();
-
Anonymous schrieb:
Also denk doch erstmal nach...
Solltest *DU* tun, und schon hättest Du etliche Rechtschreibfehler weniger auf'm Kerbholz...
Laut wissen.de:
*Visieran Handfeuerwaffen (früher auch an Geschützen) Vorrichtung zum Zielen; besteht aus einer auf dem Lauf hinten angebrachten kleinen Metallplatte mit meist dreieckigem Einschnitt (Kimme) und dem vorn aufgesetzten Korn. Wenn beim Zielen (Visieren) das Auge des Schützen, Kimme, Korn und Zielpunkt in einer geraden Linie liegen (Visierlinie), muss das Geschoss treffen.*
Naja. Vorrichtung zum Zielen...
Ich würde nicht sagen, daß ich auf einen Button ziele...
Selbst wenn der Cursor ein Fadenkreuz ist...Aber wenn ihr meint...
-
Na, das fällt Euch schwer zu akzeptieren, wenn ihr jetzt schon auf irgendwelchen Lexikons rumreiten müsst...
-
Anonymous schrieb:
Na, das fällt Euch schwer zu akzeptieren, wenn ihr jetzt schon auf irgendwelchen Lexikons rumreiten müsst...
Lexika...