delavar_
پنج شنبه 22 دی 1390, 20:31 عصر
سلام لطفا كمكم كنين :گریه:
من یه پروژه دارم که تا قسمتی انجام دادم اما به مشکل برخوردم
سوال پروژه ام اینه که در#c یک کلید باتون در صفحه هست با هر بار کلیک یک شی از کلاس باتون ساخته شود در محدوه ای از فرم در 4 جهت اصلی رندم حرکت کند
من این برنامه فقط با یک شی نوشتم نمی دونم برای ساختن چند شی از این کلاس چطور عمل کنم که اطلاعاتشون ذخیره شود تا درحین حرکت باتون ها اگر بهم برخورد کردند جهت حرکتشان برعکس کنم؟
کلاس من به این صورت است:
class car : System.Windows.Forms.Button
{
public int s;
public void displybutn() این تابع نمایش است که موقعیت باتون را رندم مشخص می کند
{
int leftx, topy;
Random l = new Random();
leftx = l.Next(30, 305);
this.Left = leftx;
Random t = new Random();
topy = t.Next(30, 205);
this.Top = topy;
Random m = new Random();
s= m.Next(2); این برای رندم حرکت کردن در چپ یا پایین است
}//end displybutn()
//-------------------------------------------------------------
public car()
{
this.Text =Convert.ToString("*");
this.AutoSize = true;
this.Width = 25;
this.Height = 25;
}
//-------------------------------------------------------------
public void move() تابع حرکت
{
if (s == 0)
{
if (this.Left < 305 || this.Left == 30)
{
while (this.Left <= 304)
{
this.Left += 1;
}
}
//----------------------------------------------------------------------
if (this.Left == 305 || this.Left >= 30)
{
while (this.Left >= 31)
{
this.Left -= 1;
}
}
}//end if(s==0)
//----------------------------------------------------------------------
if (s == 1)
{
if (this.Top <= 204 || this.Top == 30)
{
while (this.Top <= 204)
{
this.Top += 1;
}
}
//-------------------------------------------------------------------------
if (this.Top >= 30 || this.Top == 205)
{
while (this.Top >= 31)
{
this.Top -= 1;
}
}
}//end if(s==1)
}//end move
}//end class car
//************************************************** ************************
کد من در صفحه فرم اینه:
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
car c = new car();
this.Controls.Add(c);
c.displybutn();
c.move();
}
private void timer1_Tick(object sender, EventArgs e)
{
c.move();
this.Invalidate();
}
}
نحوه استفاده از تايمر رو هم براي حركت باتونها لطفاتوضيح بدهيد
با تشكر فراوان
من یه پروژه دارم که تا قسمتی انجام دادم اما به مشکل برخوردم
سوال پروژه ام اینه که در#c یک کلید باتون در صفحه هست با هر بار کلیک یک شی از کلاس باتون ساخته شود در محدوه ای از فرم در 4 جهت اصلی رندم حرکت کند
من این برنامه فقط با یک شی نوشتم نمی دونم برای ساختن چند شی از این کلاس چطور عمل کنم که اطلاعاتشون ذخیره شود تا درحین حرکت باتون ها اگر بهم برخورد کردند جهت حرکتشان برعکس کنم؟
کلاس من به این صورت است:
class car : System.Windows.Forms.Button
{
public int s;
public void displybutn() این تابع نمایش است که موقعیت باتون را رندم مشخص می کند
{
int leftx, topy;
Random l = new Random();
leftx = l.Next(30, 305);
this.Left = leftx;
Random t = new Random();
topy = t.Next(30, 205);
this.Top = topy;
Random m = new Random();
s= m.Next(2); این برای رندم حرکت کردن در چپ یا پایین است
}//end displybutn()
//-------------------------------------------------------------
public car()
{
this.Text =Convert.ToString("*");
this.AutoSize = true;
this.Width = 25;
this.Height = 25;
}
//-------------------------------------------------------------
public void move() تابع حرکت
{
if (s == 0)
{
if (this.Left < 305 || this.Left == 30)
{
while (this.Left <= 304)
{
this.Left += 1;
}
}
//----------------------------------------------------------------------
if (this.Left == 305 || this.Left >= 30)
{
while (this.Left >= 31)
{
this.Left -= 1;
}
}
}//end if(s==0)
//----------------------------------------------------------------------
if (s == 1)
{
if (this.Top <= 204 || this.Top == 30)
{
while (this.Top <= 204)
{
this.Top += 1;
}
}
//-------------------------------------------------------------------------
if (this.Top >= 30 || this.Top == 205)
{
while (this.Top >= 31)
{
this.Top -= 1;
}
}
}//end if(s==1)
}//end move
}//end class car
//************************************************** ************************
کد من در صفحه فرم اینه:
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
car c = new car();
this.Controls.Add(c);
c.displybutn();
c.move();
}
private void timer1_Tick(object sender, EventArgs e)
{
c.move();
this.Invalidate();
}
}
نحوه استفاده از تايمر رو هم براي حركت باتونها لطفاتوضيح بدهيد
با تشكر فراوان