C#侧卷轴启动建议

C#侧卷轴启动建议,c#,C#,由于这是我第一次尝试制作简单但实用的侧卷轴,我想问一些问题,并希望收集一些想法来制作一个好的引擎,它可以根据绘制游戏角色的X位置来改变图像在表单中的位置。我基本上只想重现几秒钟的马里奥游戏 开始的想法(如果错误/性能差/什么的请纠正我)是创建一幅宽度长、高度固定的图片,在按下a或D键时,绘制的角色移动到某个X点,之后,角色锁定到位,如果仍然按下该键,背景图像开始移动 但是问题是,是否可以检查绘制背景图片的X位置,并相应地为角色设置“碰撞”呢 其他问题:为什么要不惜一切代价避免使用pictureb

由于这是我第一次尝试制作简单但实用的侧卷轴,我想问一些问题,并希望收集一些想法来制作一个好的引擎,它可以根据绘制游戏角色的X位置来改变图像在表单中的位置。我基本上只想重现几秒钟的马里奥游戏

开始的想法(如果错误/性能差/什么的请纠正我)是创建一幅宽度长、高度固定的图片,在按下a或D键时,绘制的角色移动到某个X点,之后,角色锁定到位,如果仍然按下该键,背景图像开始移动

但是问题是,是否可以检查绘制背景图片的X位置,并相应地为角色设置“碰撞”呢

其他问题:为什么要不惜一切代价避免使用picturebox,而是使用表单本身?将大部分类方法放在计时器滴答事件中是错误的方法吗?我在某个地方读到过这样的游戏,最好的方法就是在forms main方法中依赖无限循环,但我根本无法想象这是如何工作的,考虑到我们可能需要在不同的地方跳出循环并编写不同的代码的所有时间

任何其他不同的想法/方法以及与进一步解释的直接链接都非常受欢迎

编辑:是的,在转到xna/unity之前,我想改进windows窗体

假设:您想做一个小游戏,这是您第一次使用移动图形,您正在使用WindowsForms建议:尝试使用更高级的框架,如MonoGame或XNA,并通过介绍性文档和教程进行学习。此外,WPF有一个更先进的图形平台,可以进行绘图和3D等操作,您可能想试一试

我想进一步阐述一下我的评论

Windows窗体和GDI(图形背后的技术)不适合这种用途。当GDI被创建时,它的目的基本上是在屏幕上绘制线条和字体。XNA是学习专业设计基础知识的一个非常好的框架。不幸的是,微软不再支持XNA框架,因此MonoGame是托管.NET 3D和2D游戏开发的推荐开发路线

WPF提供给Direct3D和Direct2D,并在框架中内置了2D和3D形状和动画,这是WPF的基础

但如果需要,您也可以选择创建XNA组件并将其嵌入Windows窗体中,如这两个教程中所示

另外,不建议使用Windows窗体计时器,因为它们不可靠。Net Framework还提供了一个“服务器计时器”和一个“线程计时器”


如果你真的喜欢在游戏中使用GDI,我可以推荐你阅读一些游戏编程的基础知识(我想这方面有一些),这些知识可以指导你基本的运行时循环、获取输入和简单的物理知识。

这个问题有点复杂;也许是离题了。您考虑过基于平铺的关卡表示吗?假设:您想做一个小游戏,这是您第一次使用移动图形,您正在使用WindowsForms。建议:尝试使用更高级的框架,如MonoGame或XNA,并通过介绍性文档和教程进行学习。此外,WPF还有一个更先进的图形平台,可以进行绘图和3D等操作,你可能想试一试。最后我得出结论,使用合适的软件(如unity3d或monogame)简单地将事情过度复杂化是没有用的。再次感谢你的回答