好的我之前使用过c#,但是在asap.net中使用了数据库,并构建了表单和数据驱动的站点。我现在正试图学习在动画或游戏中使用它。
我还在尝试并试图抓住它,所以请耐心等待。
所以我有两个对象(Ball
& Target
)在单击按钮时在Windows应用程序中移动(我将时间设置为false并且单击开始时)。
当两个物体在每个过剩空间中通过时,背景会改变颜色。问题是我试图让Target
从左到右移动而不是从一个角落移动到另一个角落。
有人可以告诉我如何使用现有代码执行此操作,谢谢。
代码
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
int ballspeed;
int targetspeed;
public Form1()
{
InitializeComponent();
ballspeed = 4;
targetspeed = 2;
}
private void timer1_Tick(object sender, EventArgs e)
{
int newX, newY, newA, newB;
newX = Ball.Location.X + ballspeed;
newY = Ball.Location.Y + ballspeed;
newA = Target.Location.X + targetspeed;
newB = Target.Location.Y + targetspeed;
if (newX > this.Width - Ball.Width)
{
ballspeed = -ballspeed;
}
if (newX < 0)
{
ballspeed = -ballspeed;
}
if (Ball.Bounds.IntersectsWith(Target.Bounds))
{
this.BackColor = Color.Black;
}
else
{
this.BackColor = Color.White;
}
Ball.Location = new Point(newX, newY);
if (newA > this.Width - Target.Width)
{
targetspeed = -targetspeed;
}
if (newA < 0)
{
targetspeed = -targetspeed;
}
Target.Location = new Point(newA, newB);
}
private void button1_Click(object sender, EventArgs e)
{
this.timer1.Start();
}
}
}
答案 0 :(得分:0)
不要向Y
坐标添加值:
newB = Target.Location.Y;
更新两个坐标将修改两个轴上的位置。因此,向targetspeed
和X
添加Y
会将您的Target
对象向两个方向移动相同的金额。然后物体沿对角线移动。您只需更新X
坐标。