![]() |
1
1
有两种方法可以做到: 第一种是运行两个线程;一个线程等待输入并相应地更新状态,而另一个线程运行游戏。 另一种方法(在游戏开发中更常见)是将游戏编写为一个每秒执行多次的大循环,更新游戏状态,重新绘制屏幕,并检查输入。 但是,当您得到键输入时,您不需要阻塞,而是检查是否存在挂起的按键,如果没有发生任何事情,您只需继续执行循环。如果您有多个输入源(键盘、网络等),它们都会放在循环中,逐个检查。 是的,这叫做投票。不,它效率不高。但是,高端游戏通常都是将最高性能和帧速率从计算机中拉出来,而不是运行得很酷。 为了提高效率,您可以选择用超时阻塞——说“等待按键,但不能超过300毫秒”,这样您就可以继续循环了。
|
![]() |
2
2
|
![]() |
3
0
你可以解决如何将stdin改为非阻塞,这可以让你写一些类似俄罗斯方块的东西,但是游戏可能更直接地用事件驱动的范例来表达。也许这是学习Windows编程的一个好借口。
不管怎样,如果您想进入控制台路径,如果您使用的是Microsoft编译器,那么您应该
实际上应该提到mingw gcc编译器3.4.5也支持
|
|
amdixon · C-W正在删除我的命令提示符-如何停止 1 年前 |
|
Carb0n · 从用户加载n个星形(要显示的部分,而不是行) 1 年前 |
![]() |
Librarian · 为什么使用if表达式对作物无效? 1 年前 |
|
javispado · 更改python丰富面板中的标题颜色 1 年前 |
![]() |
Jens G. · 使用控制台代码更改HTML文本框值 1 年前 |