【发布时间】:2015-05-30 21:40:49
【问题描述】:
好吧,首先我只是在玩 delphi,而且对它还是很陌生,但我注意到每当我尝试制作某种游戏时,按钮都是 W、A、S 和 D移动一个物体(TImage),它开始随机闪烁,我注意到如果速度很快,或者当它移动并且后面有另一个图像(背景)时会发生这种情况......
我的大部分“移动”代码如下所示:
if key = 's' then begin
for I := 1 to 5 do
sleep(1);
x:=x-2;
Image1.Top := x;
end;
也许这会导致它,但它仍然真的很烦人。如果您能对此提供帮助,我将非常高兴。
【问题讨论】:
-
从根本上说,您的整个方法都是错误的。图像控件并不打算用作精灵。对睡眠的调用也不好。您需要一种完全不同风格的游戏架构。
-
@Coldus:如前所述,TImage 和 TPaintBox 对此并不好。检查 GDI+,这对您的目的非常有用。
-
或者您可以检查一些现有的基于游戏的图形引擎,甚至是游戏引擎。对于快速原型设计,您可以查看 unDelphiX (micrel.cz/Dx),它是为 Delphi 编写的简单图形引擎,它围绕 DirectX 实现出色的性能。如果您决定使用它,请注意:双击作为 DelphiX 版本的 Timer 的 TDXTimer 不会像使用经典 Delphi 计时器那样创建 OnTimer 事件方法,而是使用 OnActivate 方法。这是 DelphiX 的新用户通常面临的最常见问题:-)
-
如果你真的对游戏开发感兴趣,你可以加入我们pascalgamedevelopment.com