Search the Community
Showing results for tags 'mouseclick'.
-
I'm starting out with learning C# and GDI+; and was trying to come up with ways of implementing mouseclick movement for a game. The method I came up with is below. Would welcome any suggestions for making it better. Relevant code:--- using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace clickmoveproject { public partial class Form1 : Form { Bitmap backup; Graphics gfx, fgfx; PointF charloc; private bool mclick; float speed = 3f; float dx = 0f; float dy = 0f; float mX, mY; float ddx = 0f; float ddy = 0f; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { backup = new Bitmap(640, 480); gfx = Graphics.FromImage(backup); gfx.FillRectangle(Brushes.Black, this.ClientRectangle); fgfx = this.CreateGraphics(); //*2** charloc = new Point(4, 4); } void Present() { fgfx.DrawImage(backup, 0, 0); } private void movement() { if (mclick) { charloc.X += ddx; charloc.Y += ddy; } } private void timer1_Tick_1(object sender, EventArgs e) { //*5** movement(); //*6** gfx.FillRectangle(Brushes.Black, this.ClientRectangle); gfx.DrawRectangle(Pens.Green, charloc.X, charloc.Y, 30, 30); gfx.DrawLine(Pens.Aqua, charloc.X, charloc.Y, mX, mY); Present(); } private void Form1_MouseClick(object sender, MouseEventArgs e) { mclick = true; mX = e.X; mY = e.Y; dx = mX - charloc.X; dy = mY - charloc.Y; double dist = Math.Sqrt((double)(dx * dx) + (double)(dy * dy)); ddx = (dx / (float)dist) * speed; ddy = (dy / (float)dist) * speed; } } } ----- end of code ---- thanks to IcePlug for his help http://www.Iceplug.us