Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Alter Hase
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
// The main-file for the Game using System; //using System.Drawing; using SharpDX; using SharpDX.Direct3D9; using SharpDX.Windows; using Color = SharpDX.Color; namespace Mindfigs { static class Game { [STAThread] static void Main() { var form = new RenderForm(" Mind Figures "); var device = new Device( new Direct3D(), 0, DeviceType.Hardware, form.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters( form.ClientSize.Width, form.ClientSize.Height )); FontDescription FontText = new FontDescription() { Height = 24, Italic = false, CharacterSet = FontCharacterSet.Ansi, FaceName = "Arial", MipLevels = 0, OutputPrecision = FontPrecision.TrueType, PitchAndFamily = FontPitchAndFamily.Default, Quality = FontQuality.ClearType, Weight = FontWeight.Bold }; var MyFont = new Font(device, FontText); var MyText = ("0"); // var MyDimenson = MyFont.MeasureText(null, MyText, FontDrawFlags.Center); int Frames = 0; float fFPS = 0; float FirstTime = 0; float LastTime = 0; RenderLoop.Run(form, () => { FirstTime = DateTime.Now.Ticks; Frames = Frames + 1; device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); device.BeginScene(); // MyFont.DrawText(null, MyText, MyDimenson, FontDrawFlags.Center | FontDrawFlags.VerticalCenter, Color.White); MyFont.DrawText(null, MyText, 200, 200, Color.White); device.EndScene(); device.Present(); fFPS = FPS(FirstTime, Frames); MyText = fFPS.ToString(); Frames = 0; LastTime = FirstTime; // LastTime = DateTime.Now.Ticks - FirstTime; // Frames = FPS(LastTime); }); } static public float FPS(float Time, int Frame ) { float NewTime = DateTime.Now.Ticks; float FPS = 0; if (NewTime > Time + 1000.0f) { FPS = (NewTime - Time) / 1000.0f + Frame; return FPS; } return FPS; } } } |
Zitat
Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.
Zitat
Ich weiß nicht was Ticks zurückgibt.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Zitat
Datetime.Now.Ticks liefert Werte auf 1/10.000 Millisekunde
Zitat
Die Auflösung dieser Zeit liegt nicht bei 10ms.
Zitat
Selbst wenn sie da läge, wäre das 1/100 einer Sekunde, für FPS-Berechnung wohl absolut ausreichend genau.
Zitat
Eine Stopwatch wäre da totaler Overkill und übrigens auch nicht anders von der Genauigkeit her.
Zitat
übrigens auch nicht anders von der Genauigkeit her
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Zitat
Dude, bevor Du einfach nur nacherzählst, was bei Stackoverflow steht, lies was ich geschrieben habe und teste es selbst aus.
Zitat
unter Win7 jedenfalls nicht mehr, da sind Auflösungen von 1ms absolut kein Problem.
Zitat
Sagen, wenn eine Sekunde vergangen ist. Dazu braucht man eine Auflösung von einer einzigen Sekunde, nicht mehr und nicht weniger.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (30.10.2013, 23:50)
Werbeanzeige