private void movePaddes() { Invoke(new MethodInvoker(delegate { //Process input from the IR sensor in the range 8 to 30 //Translate it to movement from of the paddles //8 to 19 -> translate to y positions of 0 to 165 //20 to 30 -> translate to y positions of 166 to 330 reAnalog1 = (int)analog1; reAnalog2 = (int)analog2; reAnalog1 = (reAnalog1 - 8) * (165 / 11); reAnalog2 = (reAnalog2 - 8) * (165 / 11); if (reAnalog1 > 330) { reAnalog1 = 330; } if (reAnalog2 > 330) { reAnalog2 = 330; } this.pictureBox1.Location = new System.Drawing.Point(12, reAnalog1); this.pictureBox2.Location = new System.Drawing.Point(503, reAnalog2); DisplayPanel.Refresh(); })); }
private void UpdateFrame() { Invoke(new MethodInvoker(delegate { //textBox1.Text = textToDisplay; textBox1.Enabled = false; DisplayPanel.Refresh(); })); }
public AlternatePongExperiment() { InitializeComponent(); sensors = new DistanceSensors(); sensors.DistancesChanged += new DistanceSensors.DistancesChangedHandler(sensors_DistancesChanged); sensors.Connect(); sound1 = new SoundPlayer("sounds/pong.wav"); sound1.Load(); sound2 = new SoundPlayer("sounds/pong2.wav"); sound2.Load(); sound3 = new SoundPlayer("sounds/pong3.wav"); sound3.Load(); paddle1 = 0.5f; paddle2 = 0.5f; ball = new PointF(DisplayPanel.Width / 2, DisplayPanel.Height / 2); rand = new Random(); ballSpeed = new PointF((rand.NextDouble() <= 0.5 ? -1 : 1) * BALL_SPEED_FACTOR, (float)(rand.NextDouble() * 2 * BALL_SPEED_FACTOR) - BALL_SPEED_FACTOR); Task.Factory.StartNew(() => { DateTime startTime = DateTime.Now; ballStartTimer = BALL_START_TIMER; while (!IsDisposed) { try { DateTime currTime = DateTime.Now; UpdatePositions((float)(currTime - startTime).TotalSeconds); Invoke(new MethodInvoker(delegate { DisplayPanel.Refresh(); })); startTime = currTime; Thread.Sleep(20); } catch { } } }); }
private void frm_Load(object sender, EventArgs e) { DisplayPanel.Refresh(); Paint(); }