Board logo

标题: [其他] 控制台CAPI解释器CAPIS.EXE [打印本页]

作者: happy886rr    时间: 2017-2-28 19:03     标题: 控制台CAPI解释器CAPIS.EXE

其实就是CLGO语言内置了CAPI.DLL,只有19KB,但比批处理功能强很多。运行速度是批处理的5倍,适合做控制台游戏开发。总之CAPI能做到,CAPIS脚本解释器都能做,并且CAPIS不需要cmd也能运行,支持直接拖拽运行脚本。由于之前已经开源了CLGO解释的代码,就不再重复贴码了,只是内嵌了一个capi而已。
  1. 控制台C版API调用解释器,支持IF~ELIF、WHILE、FOR等条件循环语句,可用的内建命令
  2. 有"CAPI", "LINK", "STOP", "EXIT", "WAIT", "PAUSE", "PRINT", "LETS", "CLEAN", "CLS"。
  3. 可以实现跟CAPI完全一样的API调用效果,但比CAPI的批处理速度快5倍。非常接近原生C语言的速度,且支持浮点数,表达式类传参。
复制代码
下载:http://bcn.bathome.net/s/tool/index.html?key=CAPIS

简单的应用,弹出对话框:
  1. FUN MAIN
  2. LINK L"USER32" L"KERNEL32"
  3. CAPI =MessageBoxW 0 L"你好" L"message" 1
复制代码
控制台图显:
  1. FUN DRAW :HICON :HCMD :HDC
  2. LINK  L"USER32" L"KERNEL32"
  3. CAPI :HICON=LoadImageW 0 L"1.ico" 1 0 0 16
  4. CAPI :HCMD =GetConsoleWindow
  5. CAPI :HDC  =GetDC :HCMD
  6. FOR ::A 1 1000
  7. [
  8. CAPI =DrawIconEx :HDC ::A*2 0 :HICON 128 128 0 0 3
  9. CAPI =Sleep 20
  10. CLEAN
  11. CLS
  12. ]
  13. FUN MAIN
  14. DRAW 0 0 0
  15. PAUSE
复制代码
当然非常推荐使用开源的tincs,它才是能在批处理中原生书写C代码的解释器http://www.bathome.net/thread-42497-1-2.html
类似功能的还有ICMD,一个还在完善的项目,http://www.bathome.net/thread-43259-1-1.html
ICMD脚本,挖地道
  1. ::*****************************************************************************
  2.   @IF [%1]==[] ("%~DP0ICMD.EXE" /C "%~F0" 1&EXIT)&@REM ICMD SCRIPT 2017~2019
  3. ::*****************************************************************************
  4. @echo off
  5. REM 初始化库文件
  6. set/f=LinkDllW L"USER32" L"KERNEL32" L"MSVCRT"
  7. set/f hIcon0=LoadImageW 0 L"graphcs\_p0.ico" 1 0 0 16
  8. set/f hIcon1=LoadImageW 0 L"graphcs\_p1.ico" 1 0 0 16
  9. set/f hIcon2=LoadImageW 0 L"graphcs\_p2.ico" 1 0 0 16
  10. set/f hIcon3=LoadImageW 0 L"graphcs\_p3.ico" 1 0 0 16
  11. set/f wIcon =LoadImageW 0 L"graphcs\_b.ico"  1 0 0 16
  12. set/f bIcon =LoadImageW 0 L"graphcs\_w.ico"  1 0 0 16
  13. set/f hCMD =GetConsoleWindow
  14. set/f hDC  =GetDC %hCMD%
  15. REM 绘制背景地图
  16. for /l %%i in (0,32,800) do (
  17. for /l %%j in (0,32,600) do (
  18. set/f =DrawIconEx %hDC% %%i %%j %bIcon% 32 32 0 0 3
  19. )
  20. )
  21. REM 绘制起点人物
  22. set/a "X=0,Y=0, hIcon=hIcon3"
  23. set/f =DrawIconEx %hDC% %X% %Y% %hIcon% 32 32 0 0 3
  24. REM 循环读取按键
  25. :LOOP
  26. SET/A "PREX=X, PREY=Y"
  27. set/f key=_getch
  28. if %key% geq 97 (set/a key-=32)
  29. if %key% equ 87 (set/a Y-=32,hIcon=hIcon1)
  30. if %key% equ 83 (set/a Y+=32,hIcon=hIcon3)
  31. if %key% equ 65 (set/a X-=32,hIcon=hIcon0)
  32. if %key% equ 68 (set/a X+=32,hIcon=hIcon2)
  33. set/f =DrawIconEx %hDC% %PREX% %PREY% %wIcon% 32 32 0 0 3
  34. set/f =DrawIconEx %hDC%    %X%    %Y% %hIcon% 32 32 0 0 3
  35. goto LOOP
复制代码

作者: codegay    时间: 2017-3-1 13:02

你玩得好开心
作者: happy886rr    时间: 2017-3-1 14:27

回复 2# codegay
哈哈, 我也觉得没什么可玩了,几乎都体验了,原来编程是这样简单。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2