因为这是我第一次尝试制作简单但可用的侧面滚轮,我想问一些问题并希望收集想法以制作一个好的引擎,可以改变图像在表单中的位置取决于绘制的游戏角色的X位置。我基本上喜欢重新创建马里奥游戏的几秒钟。
开始的想法(纠正我,如果它的错误/表现不佳/无论如何)将创建一个长宽和白色固定高度的图片,并在按下例如A或D键时,绘制的角色移动到某个X点,之后,角色被锁定到位,如果仍按下该键,则背景图像开始移动。
但问题是可以解决碰撞的问题,可以检查绘制的背景图片的X位置并设置"碰撞"相应的角色?
其他问题:为什么不惜一切代价避免使用图片框而是使用表格本身?将大部分类方法放在timer_tick事件中是错误的方法吗?我在某处读到,做这种游戏的最佳方式是依赖于形式主要方法中的无限循环,但我甚至无法想到这可能如何起作用,将所有时间都计算在内我们可能需要离开循环并在不同的地方执行不同的代码。
任何其他不同的想法/方法以及与进一步解释的直接联系都会非常受欢迎
编辑:是的我想在转向xna / unity之前改进Windows窗体
答案 0 :(得分:0)
假设:你想制作一款小游戏,这是你第一次使用移动图形,而你正在使用WindowsForms。 建议:尝试使用更高级的框架,例如MonoGame或XNA,并通过介绍性文档和教程进行操作。此外,WPF还有一个更先进的图形平台,可用于绘制和3D,你可能想要拍摄。
稍微扩展我的评论。
Windows Forms和GDI(绘图背后的技术)不适合这种用途。创建GDI时,其目的主要是在屏幕上绘制线条和字体。 XNA是一个非常好的框架,用于学习基础知识到专业设计。不幸的是,微软不再支持XNA框架,因此MonoGame是管理.NET 3D和2D游戏开发的推荐开发途径。
WPF为Direct3D和Direct2D提供basic access,并在框架中内置了2D和3D形状和动画,是WPF的基础。
但如果需要,您还可以选择创建一个XNA组件并将其嵌入Windows窗体中,如这两个教程中所示。
建议不要使用Windows窗体定时器,因为它们不可靠。 .Net Framework提供了“服务器计时器”和“线程计时器”,也可以使用。
如果你真的热衷于在游戏中使用GDI,我可以推荐阅读有关游戏编程的基础知识(我认为这个主题有一些XNA docs)可以指导你做基本运行之类的事情时间循环,获取输入和简单的物理。