在Delphi XE2之前,我们只使用VCL来创建GUI应用程序.Delphi XE2声明:
警告:FireMonkey(FMX)和可视组件库(VCL)不兼容,不能在同一项目或应用程序中使用.也就是说,应用程序必须只有一个或另一个,FireMonkey或VCL.不兼容性是由FireMonkey(FMX)和VCL之间的框架差异引起的.
我的应用程序是一个使用运行时包构建的纯VCL应用程序.所有VCL表单都存储在运行时包中.如果我要创建一个FireMonkey表单并存储在一个包中,我是否有机会在运行时在我的VCL应用程序中实例化这个FireMonkey表单?所以我可能会喜欢FireMonkey的3D或HD效果.
我需要绘制一个正方形图像,映射或转换为未知的编译时四边形多边形.我怎样才能做到这一点?
具体问题是渲染具有非矩形地图投影的地图图块.假设我有以下磁贴:

我知道需要有四个角点:

鉴于此,我想得到以下输出:

方形瓷砖可能是:
我认为第二项意味着这需要非仿射变换.
随机附加说明
四面?完全正确的情况是合理的,瓷砖应该映射到具有四个以上点的多边形,但是对于我们的目的和绘制的尺度,方形 - >其他四角多边形变换应该足够了.
为什么只有GDI? 到目前为止,所有渲染都是使用GDI完成的,我希望快速保持代码(a),并且(b)需要尽可能少的额外库.我知道有一些对GDI转换的支持,并且今天一直在试验它们,但即使在试验它们之后,我也不确定它们是否足够灵活用于此目的.如果他们是,我还没有设法弄清楚,所以我真的很感激一些示例代码.
GDI +也可以,因为我们在其他地方使用它,但我知道它可能很慢,速度在这里很重要.
另一种选择是Delphi - / C++ Builder特有的; 这个程序主要是用C++编写的,使用的是VCL,所讨论的图形目前被绘制成TCanvas,混合使用TCanvas方法和原始WinAPI/GDI调用.
叠加图像:最后一点需要注意的是,图块中的一种颜色可能是用于颜色键的透明度:也就是说,上面图块中的所有白色(说)方块在绘制在下面的任何内容时应该是透明的.目前,使用TransparentBlt将切片绘制到方形或轴对齐的矩形目标.
对于让这个问题比"我应该使用什么算法?"更复杂的所有额外警告我感到抱歉.但我也很乐意接受只有算法信息的答案.
我想为个人/学习目的制作一些简单的游戏.简单的游戏我指的是平台,迷宫,街机游戏等游戏.我有一天也想用一个简单的编辑器创建一个平台游戏,让其他人可以编辑和设计他们自己的游戏关卡.
我不确定Delphi是否可行,但我没有看到或听到很多人在Delphi中编写游戏,但是Delphi是我在中级水平上理解的唯一语言.
如果Delphi可以像我提到的那样创建简单的游戏,我是否正确地认为我需要一些可以帮助我做到这一点的库,例如Direct X?
我正在使用Delphi XE,我希望我已经等待并升级到Delphi XE2,因为它似乎包含一些内置的Drawing库.
我期待听到你对此的回应.
谢谢.
我将不得不WM_COPYDATA在2个应用程序之间实现IPC.我似乎在互联网上的样本,但他们都只发送少于255个字符的字符串.
我想发一个大字符串(超过1k)到另一个进程使用WM_COPYDATA.可能吗?有什么限制?我应该发送流而不是字符串或记录吗?
这两个应用程序都是由我使用Delphi 2010开发的.
delphi ×4
delphi-xe ×1
delphi-xe2 ×1
directx ×1
firemonkey ×1
gdi ×1
gdi+ ×1
graphics ×1
ipc ×1
string ×1
transform ×1
vcl ×1
wm-copydata ×1