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 :-)
Risposta Citazione
|