pygame吧 关注:723贴子:1,942
  • 20回复贴,共1

请问如何让某条命令仅在接下来的几秒内执行?

只看楼主收藏回复

例如,我想让角色在发生碰撞时呈现一个被碰撞的图片。
那么
status = pygame.image.load('status1.bmp')
if collide:
( in the next 0.5 second )
status = pygame.image.load('status2.bmp')
我自己在网上找到的相关代码是:
t_end = time.time() + 0.5
while time.time() < t_end:
star_eater.image = pygame.image.load('star_eater_2.bmp')
可是运行起来电脑非常的卡,每秒只有一两帧。


1楼2018-03-18 10:23回复
    我自己找到了一个解决方案:
    http://www.cnblogs.com/msxh/p/5013555.html


    3楼2018-03-19 15:50
    回复
      @三_七分 不好意思再打搅您一次,虽然不报错,但为啥没有用呢?


      10楼2018-03-30 17:53
      收起回复

        这是我的main程序 @三_七分


        11楼2018-03-31 08:44
        收起回复



          12楼2018-03-31 08:53
          收起回复



            @三_七分 这俩为啥不一样啊,想不通啊!


            13楼2018-03-31 10:05
            收起回复
              哦对了,忘了你没有mTime
              不好意思啊
              mtime代表就是程序每一此调用tick所需要的时间。
              这里不解释给你了,告诉你怎么得到这个参数吧。
              首先:定义一个clock = pygame.time.Clock() ;
              然后, 将tick放到update方法中去:
              def update(self,*args):
              clock.tick(60) ,定义程序帧数;
              然后,在下面 mtime=clock.get_time()
              这个mtime就得到了 , 把mtime给 delty 的 update 函数就行了,要不不能运行的- -不好意思啊


              IP属地:山东14楼2018-04-02 11:08
              收起回复



                @三_七分 不好意思我又来了,mTime里明明有值,却被系统认为是nonetype,这是为什么呢?


                15楼2018-04-02 21:52
                收起回复