none
Timer e XNA RRS feed

  • Discussione generale

  • Salve a tutti sto creando un piccolo giochino con C# e XNA e mi serve una mano.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Timers;
    using Microsoft.Xna.Framework;
    using Microsoft.Xna.Framework.Audio;
    using Microsoft.Xna.Framework.Content;
    using Microsoft.Xna.Framework.GamerServices;
    using Microsoft.Xna.Framework.Graphics;
    using Microsoft.Xna.Framework.Input;
    using Microsoft.Xna.Framework.Media;
    
    namespace WindowsGame2
    {
        class Controller : Sprite
        {
            public Controller(Texture2D texture, Vector2 posizione, float velocita, Color colore)
                : base(texture, posizione, velocita, colore)
            {
    
            }
    
            public override void Update(GameTime game)
            {
    
                if (Keyboard.GetState().IsKeyDown(Keys.D) && posizione.X < MieVariabili.larghezzaFinestre - texture.Width - 10.0f)
                    posizione.X += velocita;
                if (Keyboard.GetState().IsKeyDown(Keys.A) && posizione.X > 10.0f)
                    posizione.X -= velocita;
                //Predisposizione comandi sali e scendi
                /* if (Keyboard.GetState().IsKeyDown(Keys.W))
                    posizione.Y += velocita;
                if (Keyboard.GetState().IsKeyDown(Keys.S))
                    posizione.Y -= velocita; */
                if (Keyboard.GetState().IsKeyDown(Keys.Q))
                    MieVariabili.logLaser.Add(new Laser(MieVariabili.texLaser, MieVariabili.posizioneLaser, MieVariabili.velocitaLaser, MieVariabili.coloreLaser));
                base.Update(game);
            }
    
            public override void Draw(GameTime game, SpriteBatch spriteBatch)
            {
                base.Draw(game, MieVariabili.spriteBatch);
            }
    
            public override Vector2 qualePosizione
            {
                get
                {
                    return base.qualePosizione;
                }
            }
        }
    }

    Come potete notare alla pressione del tasto Q viene aggiunto un oggetto laser ad una lista e poi la lista viene disegnata a schermo in un altro punto del programma (foreach). Il problema è che potenzialmente si possono sparare un' infinità di laser e mi piacerebbe poter fare un doppio controllo alla Q. Una casa tipo questo: "Se q premuto e passati 2 secondi dal' ultimo laser allora aggiungi un nuovo laser alla lista";

    Grazie mille in anticipo e ciao :-) 

    martedì 25 settembre 2012 17:49

Tutte le risposte