Как заставить лазеры летать?
Я использую c# для winapp- Не за единство или что-то в этом роде.
my class { Lasers laser1 = new Lasers(); Lasers laser2 = new Lasers(); public Screen() { InitializeComponent(); DoubleBuffered = true; this.Paint += new PaintEventHandler(Screen_Paint); Timer timerforLaser = new Timer(); timerforLaser.Tick += new EventHandler(Timer_forLaser_Tick); timerforLaser.Interval = 100; timerforLaser.Start(); .... laser1.Initialize(); laser2.Initialize(); } void Screen_Paint(object sender, PaintEventArgs e) { ........ e.Graphics.DrawImage(laser1.Img0, laser1.Rectangle);//LaserPaint e.Graphics.DrawImage(laser2.Img0, laser2.Rectangle);//LaserPaint } void Timer_forLaser_Tick(object sender, EventArgs e) { laser1.ShootUp(); laser2.ShootUp(); this.Refresh(); //very Important -without him here nothing works } private void Screen_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) { laser1.New(Player.X, Player.Y); laser2.New(Player.X, Player.Y); } this.Refresh(); //very Important -without him here nothing works } }
Из кода, который я публикую, когда я нажимаю клавишу пробела, он создаст 2 лазерных изображения на экране и обновит их в событии таймера.
Проблема в том, что создаются они одновременно и внахлест.
Я хочу, чтобы они создавались один за другим. Как взрыв. С небольшим промежутком времени между ними. И никаких совпадений.
Я полагаю, что должен каким-то образом поставить таймер между начальной точкой каждого лазера, пока я продолжаю нажимать клавишу пробела. Или какая-то задержка. И если мне придется создать 100 лазеров, я, вероятно, создам массив, который будет содержать все лазеры? Я понятия не имею, как заставить эту штуку работать.
Большое вам спасибо.
Что я уже пробовал:
everything
everything
everything
everything
everything
everything