『FP的PTC库入门』2048【第二弹】
pascal吧
全部回复
仅看楼主
level 14
139457820 楼主
一楼先放图。唉,太贪玩没时间写码,就提前结束了。以后可能会继续优化着做一些新的。
【第一弹】连接:https://tieba.baidu.com/p/5057863742
2017年04月10日 13点04分 1
level 15
前排
2017年04月10日 13点04分 2
level 14
139457820 楼主
今天要介绍的是ptc库。shy用的是fp3.0.2,其实好像2.6.4就有这个库了。
以console为窗口,surface为缓存,我们可以绘制一系列事物;并且由于是OpenGL和DirectX为基础的,绘制效率有了保证(至少比graph或gdi好吧)。
初始化:
console:=TPTCConsoleFactory.CreateNew;
format:=TPTCFormatFactory.CreateNew(32,$FF0000,$FF00,$FF);
console.option('windowed output');//这边是窗口化,不然他可能是全屏的哦
console.open();
surface:=TPTCSurfaceFactory.CreateNew();
绘制:
_pointer:=surface.lock;//锁定了,返回了RGBA的指针,可以直接在上面修改
//巴拉巴拉小魔仙全身变!这里对指针画一堆
surface.unlock;//解锁
surface.copy(console);
console.update;//要加上这些才可以显示到窗口上
那么,回到2048上来。有了这个,shy在上次std2048的基础上新编写了std2048_ptc库。有了这个库,可以直接界面化模拟2048,当然也可以直接做成游戏了。如果你能做出更好的欢迎回复。
比如做个随机上下左右的就只要写:
uses std2048,std2048_ptc,ptc;
begin
 std2048Init;
 while Game do DisPlayProc(random(4)+1)
end.
Power by shyakocat
2017年04月10日 13点04分 3
更多具体的,可以访问源码(Σ( ° △ °|||)︴当然源码写的比较渣、很多都是铺垫):http://pan.baidu.com/s/1jIiI9sa
2017年04月10日 13点04分
请注意,编译源码需要较多的库,要从fp的unit文件夹里把很多东西复制到你的程序的同目录下!运行模拟的exe可能需要你的电脑装有OpenGL的dll、DirectX9(如果你平常经常玩3d游戏那么大概这东西你是有的)。
2017年04月10日 13点04分
上面有点说错那就是BGRA,自己体会一下、、
2017年04月10日 13点04分
此外就是cpu占用率过高,写惯oi代码不知怎么解决。、
2017年04月10日 14点04分
level 15
ptc库,fp自带的?
2017年04月10日 13点04分 4
是的。你把C:\FPC\3.0.2\units\i386-win32\ptc里面的内容复制出来。
2017年04月10日 13点04分
@139457820 啊啊啊我现在爪机
2017年04月10日 14点04分
@139457820 这个库在fp的网站上应该有吧
2017年04月11日 11点04分
@炎▫龙 fp网站能介绍的很有限,戳http://ptcpas.sourceforge.net/。具体可以结合example/ptc内的代码食用。此外比如他是全屏的我不知道怎么窗口化,'cuz他是用字符串控制的,我邮件问了这个库的作者Nikolay Nikolov。你可以自行研究、
2017年04月11日 23点04分
1