我总是发现有些人(大多数来自印度)正在使用turbo C.我找不到任何理由使用这种过时的编译器...但我不知道在试图告诉他们使用现代编译器时给出的理由是什么( GCC,MSVC,...).
我正在写一个老式的ASCII DOS-Prompt游戏.老实说,我正试图效仿ZZT,以了解更多关于这个品牌的游戏设计(即使它已经过时)
我做得很好,让我的全屏文本模式工作,我可以创建世界和移动没有问题但我找不到一个像样的方法我的渲染.
我知道我的渲染和预渲染代码很快,因为如果我不添加任何延迟()或(time() - renderBegin)/ CLK_TCK从time.h检查,渲染速度非常快.
我不想使用delay(),因为它是我的知识平台特定的,并且在它延迟时不能运行任何代码(如用户输入和处理).所以我决定这样做:
do {
if(kbhit()) {
input = getch();
processInput(input);
}
if(clock()/CLOCKS_PER_SEC-renderTimer/CLOCKS_PER_SEC > RenderInterval) {
renderTimer = clock();
render();
ballLogic();
}
}while(input != 'p');
Run Code Online (Sandbox Code Playgroud)
哪个应该在"理论"中工作得很好.问题是,当我运行此代码(将RenderInterval设置为0.0333或30fps)时,我不会得到接近30fps的任何地方,我最多会得到18.
我想也许我会尝试将RenderInterval设置为0.0以查看性能是否已经启动......它没有.我(RenderInterval为0.0)达到最大值~18-20fps.
我可能因为我不断调用所有这些clock()和"除以这个"方法,我正在减慢CPU的速度,但是当我把渲染和ballLogic调用if语句的括号并将RenderInterval设置为0.0我再次得到了极快的渲染效果.
这对我来说没有任何意义,因为如果我离开if if check in,它不应该运行得那么慢吗?我的意思是它仍然需要做所有的计算
顺便说一句,我正在编译Borland的Turbo C++ V1.01
在TurboPascal程序中,我利用DOS 处理输出并使用Tab 控件字符在输出中形成列:
const Tab = #09;
...
Writeln(X, Tab, F(X));
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试pause通过ReadKey调用和使用Crt模块添加类似功能时,已处理的输出中断,并且上面说明的语句开始编写通用Tab字形,而不是在制表位上形成列.
正如我所知,这种现象的来源是AssignCrt(Output)在模块初始化时调用,它重新定义了Writeln工作原理 - 它不再使用DOS输出,而是使用视频BIOS或直接视频内存访问(取决于DirectVideo值).
我要如何扭转什么AssignCrt呢?据我所知,文档中没有Crt提供恢复正常输出的方法.
我计划将X变量转换为十进制.我很难使用turbo汇编程序,你能帮忙吗?
code segment ;inicio de un segmento unico
assume cs:code,ds:code,ss:code
org 100h ;localidad de inicio del contador
main proc ;procedimiento principal
mov ax,cs
mov ds,ax ; INICIO
mov ax, x
mov ah,4ch ;comienzo del fin de programa
int 21h ;fin del programa
main endp
x dw 0A92FH
code ends ; fin del segmento de codigo
end main ;fin del ensamble
Run Code Online (Sandbox Code Playgroud)
非常感谢
我正在尝试使用从用户那里获得的目录从 Delphi 中打开 Windows 资源管理器。该目录保存为字符串。当我使用以下代码时,它不会接受它。我必须亲自输入。
sDir : string;
procedure OpenDirectoryClick(Sender: TObject);
begin
ShellExecute(Handle,nil,sDir,nil,nil,sw_Show);
end;
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用
sDir : string;
procedure OpenDirectoryClick(Sender: TObject);
begin
ShellExecute(Handle,nil,'C:\Windows',nil,nil,sw_Show);
end;
Run Code Online (Sandbox Code Playgroud)
上面的代码确实有效
我该如何解决这个问题?
我是VB脚本的新手,我试图找到一种方法:
根据我的研究,似乎一个好的方法是使用FSO并读取整个文本文件,创建一个数组,然后循环检查文件是否存在于目录中,然后记录到"missing.txt",如果它没有.
但是,这样做,不会出现类型不匹配,因为.txt中的文件名是一个字符串,目录中的文件本身就是对象吗?
我该如何比较?我可以从概念上理解这一点,但我不知道从哪里开始使用语法.
谢谢您的帮助.
在Turbo C编译器中,当使用sizeof()运算符时,int指针的大小显示为2个字节.现在,如果我打印一个int变量的地址,它就是一个8位的十六进制数,这使得地址的大小为32位(或4个字节).
那么,为什么Turbo编译器显示2个字节大小的指针?