为了账号安全,请及时绑定邮箱和手机立即绑定

游戏中的多任务执行解决方案

有时,编写游戏时会遇到这样的尴尬场面:
比如说俄罗斯方块游戏,既要计算游戏时间(计时),又要通过键盘操控方块下落。
问题是,计时一般用的是



min:=0;  sec:=0;
write('0:0');
while True do
begin
  delay(1000);
  inc(sec);
  if sec>=60 then begin sec:=0; inc(min); end;
  write(min,' : ',sec);
  //在这里调节方块
end;
//(咦?难道只有我一个人在用古老而又陈旧的Pascal?)
//(算了,反正也看得懂,delay(x)是延迟x毫秒,inc(x)是将x加一。)



 而一执行到delay,整个程序就会停下来等,直到delay执行完毕。
这意味着,这个游戏几乎没有给玩家时间去调整俄罗斯方块……


对于我这种只能用两个背景颜色为红色的空格并在一起当作一个正方形的人来说,
是不可能用更高级的软件同时进行两种操作的,
只有一个没多少函数的Crt单元(函数库)陪伴着我……
于是,我想出了一个"高级"办法:卡电脑法



min:=0;  sec:=0;
write('0:0');
while True do
begin
  clock:=0; time:=2500000;  //(一个较大的数,使正好过去一秒)
  if clock>time then 
  begin
    inc(sec);
    if sec>=60 then begin sec:=0; inc(min); end;
    write(min,' : ',sec);
  end
  else inc(clock);
  //在这里调节方块
end;



这个方法有较大的不足,它会由于程序运行的快慢和其他很多因素相关,

如果程序运行慢(如一个程序中同时运行了好多这样的计时部分)则计时会变慢。

而且调time也怪麻烦的,所以其实…不大适合计时,

不过对于我的小黑屏超低像素的方块游戏已经足够了。


P.S.  你们(Python,C++,Html,Java &blabla)是怎么解决的?

        有心人可以回复一下

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消