/// <summary> /// 每帧会发射一个粒子,其位置在画布中间(200,200),发射方向是360度,速率为100,生命为1秒,红色、半径为5象素 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void demo2_Click(object sender, RoutedEventArgs e) { var dt = 0.01; AyFramework.Start(() => { ps.emit(new AyParticle(new AyVector2(200, 200), sampleDirection().Multiply(100), 1, Colors.Green, 5)); ps.simulate(dt); AyFramework.clearCanvas(); ps.render(ctx); }); }
private void demo1_Click(object sender, RoutedEventArgs e) { AyFramework.clearCanvas(); var position = new AyVector2(10, 200); var velocity = new AyVector2(50, -50); var acceleration = new AyVector2(0, 10); var dt = 0.1; AyFramework.Start(() => { position = position.Add(velocity.Multiply(dt)); velocity = velocity.Add(acceleration.Multiply(dt)); ps.CreateEllipse(position.X, position.Y, 5, Colors.Green, Colors.Yellow, ctx); }); }
void ctx_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { AyFramework.clearCanvas(); var point = e.GetPosition(ctx); var dt = 0.015; var ddd = Color.FromRgb(Convert.ToByte(rd.Next(0, 255)), Convert.ToByte(rd.Next(0, 255)), Convert.ToByte(rd.Next(0, 255))); AyFramework.stop(); AyFramework.Start(() => { ps.emit(new AyParticle(new AyVector2(point.X, point.Y), sampleDirection().Multiply(100), 1, ddd, 5)); ps.simulate(dt); AyFramework.clearCanvas(); ps.render(ctx); }); }