我正在做一个大学计算项目,而且我遇到了一个绊脚石。
我正在制作塔防游戏,我需要制作一个精灵(在这种情况下以图片框的形式)遵循所设定的路径。我尝试在网上和这些论坛上寻找答案,但我找到的几乎每一个都使用XNA或其他一些添加,或者是另一种编码语言。由于我们必须使用大学计算机,安装其他任何东西都不是一个选择,它必须只是标准的C#框架。我试图为航点或故事板寻找替代方案,但我的搜索没有结果。
如果有人能帮助我,我会非常感激 感谢
答案 0 :(得分:0)
我会填写更多细节,但看看它是如何做作业的,我想我会提供一个大纲:
PictureBox pbox1 = new PictureBox();
Point[] path = { new Point(10,100), new Point(150, 60), new Point(100, 120)};
Timer timer1 = new Timer();
int curPointIndex = 0;
int nextPointIndex = 1;
float percent = 0f;
float pctIncrement = 1f;
public Form1()
{
InitializeComponent();
pbox1.Location = path[0];
pbox1.Size = new Size(32, 32);
pbox1.BackColor = Color.Red;
timer1.Interval = 20;
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Start();
this.Controls.Add(pbox1);
this.components.Add(timer1);
}
void timer1_Tick(object sender, EventArgs e)
{
percent += pctIncrement;
// Calculate weighted average based on point number
// curPointIndex and nextPointIndex in path here.
// Set pbox1.Location to calculated position here.
// Check for altering curPointIndex and nextPointIndex here when percent
// reaches 100 (and reset percent) here.
}
我已经在我的测试项目中填写了代码并且它可以工作。需要注意的是,精灵在接近的点之间移动的速度要比相距很远的点之间的速度慢,但我不确定这对你的要求是否有问题。如果是,您可以将pctIncrement更改为与当前点和下一个点之间的距离成反比的计算。
答案 1 :(得分:0)
我已经添加了一个答案,但我也有一个完全不同的答案。你说你不想使用第三方框架,我不确定这是否会越过这条线。 Scrolling Game Development Kit 2将允许您为精灵定义地图,精灵和路径,但随后它将生成一个完全独立的项目,可以加载到Visual C#Express中,如果您愿意,可以单独编译。它依赖的一个库是OpenTK,只是为了访问OpenGL来处理图形绘制。那部分可能会越过界限,但它主要用于主要封装在Display.cs中的绘图。它不是用于管理任何精灵或地图或运动的状态。