C# Xna - Ett objekt ska vara "true" under 60 sekunder.

Permalänk

C# Xna - Ett objekt ska vara "true" under 60 sekunder.

Tja!

Behöver hjälp med att få ett objekt att vara true under exakt 60 sekunder och sen ska det sättas till false. Jag har försökt med for loopar och i++ men jag kan inte får den att uppdatera varje sekund. Har även försökt med syste,.Threading.Sleep(100) men det gör att hela programmet sover i de antal sekunderna.

Vore grymt om någon kunde förklara hur jag ska gå till väga för att få detta att fungera!
Om du vill så får du gärna adda mig på skype så vi kan chatta just nu! johan.holm8 i skövde.

// Johan H

Permalänk
Medlem
Permalänk

Använd dig av Update metoden i ditt spelprojekt. Med Update() skickas också ett GameTime objekt där du kan läsa av ElapsedGameTime vilket är tiden sedan den senaste uppdateringen och du kan läsa av det i millisekunder. Update metoden körs ca 60 gånger i sekunden om du inte har ändrat FPS på ditt projekt. Använd dessa tidsmätningar för att räkna ut när det gått 60 sekunder. Du gör allt sånt här inom Update() i spelprogrammering.

Fråga gärna mer om du inte förstår hur du ska gå tillväga, men försök också att lösa det på egen hand då man lär sig mest på det viset.

Här har du ett exempel på hur du kan mäta tid med hjälp av Update().

Detta är i Game1.cs på ett nygjort projekt.

variablar:

long elapsed; long minutes; long seconds;

Initialize

protected override void Initialize() { elapsed = 0; minutes = 0; seconds = 0; base.Initialize(); }

Update

protected override void Update(GameTime gameTime) { this.Window.Title = "Elapsed Time: " + minutes + "m " + seconds + "s"; elapsed += gameTime.ElapsedGameTime.Milliseconds; if (elapsed >= 1000) { elapsed = 0; seconds++; if (seconds == 60) { seconds = 0; minutes++; } } base.Update(gameTime); }

Permalänk
Medlem

Inte helt svaret på din fråga men kolla länken nedan; principen är nästan den samma.
http://blogs.msdn.com/b/shawnhar/archive/2007/06/08/displayin...

Visa signatur

Ingen är perfekt inte ens Najk!