pygame学习(四)-time

pygame.time.get_ticks         获取毫秒时间

pygame.time.wait                暂停程序一段时间

pygame.time.delay              暂停程序一段时间

pygame.time.set_timer        在事件队列中重复创建事件

pygame.time.Clock                     创建一个对象来帮助跟踪时间

常用模块:

1、get_ticks() -> 毫秒        返回自调用pygame.init()以来的毫秒数。在 pygame.init()之前,该值始终为 0。

2、wait(毫秒) -> 时间        此函数使进程休眠以与其他程序共享处理器,等价于time.sleep()。等待几毫秒的程序将消耗很少的处理器时间。它的准确性略低于该pygame.time.delay()函数。

3、delay(毫秒) -> 时间      将暂停给定的毫秒数。此功能将使用处理器(而不是休眠)以使延迟比更准确pygame.time.wait()。

4、set_timer(event, millis) -> None                 设置事件,不带循环

set_timer(event, millis, loops=0) -> None         设置事件,带循环

此方法可以摘游戏中控制补给,例如每隔10000毫秒,出现一个奖励道具。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Pygame 小游戏的源代码。这个游戏是一个简单的打飞机游戏,玩家控制一个小飞机,躲避敌机的攻击并射击它们。你可以用这个源代码作为学习 Pygame 编程的参考。 ```python import pygame import random # 初始化 Pygame pygame.init() # 定义一些常量 SCREEN_WIDTH = 480 SCREEN_HEIGHT = 800 ENEMY_COUNT = 5 FPS = 60 # 创建窗口 screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption('打飞机') # 加载图片 background_image = pygame.image.load('background.png').convert() player_image = pygame.image.load('player.png').convert_alpha() enemy_image = pygame.image.load('enemy.png').convert_alpha() bullet_image = pygame.image.load('bullet.png').convert_alpha() # 定义游戏对象 class GameObject: def __init__(self, x, y, image): self.x = x self.y = y self.image = image self.rect = self.image.get_rect() self.rect.x = self.x self.rect.y = self.y def draw(self, surface): surface.blit(self.image, (self.x, self.y)) # 定义玩家类 class Player(GameObject): def __init__(self, x, y, image): super().__init__(x, y, image) self.speed = 5 self.bullets = [] def update(self): keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: self.x -= self.speed if keys[pygame.K_RIGHT]: self.x += self.speed if keys[pygame.K_UP]: self.y -= self.speed if keys[pygame.K_DOWN]: self.y += self.speed if keys[pygame.K_SPACE]: self.fire() # 更新子弹 for bullet in self.bullets: bullet.update() def fire(self): bullet = Bullet(self.x + self.rect.width / 2, self.y) self.bullets.append(bullet) # 定义敌机类 class Enemy(GameObject): def __init__(self, x, y, image): super().__init__(x, y, image) self.speed = 3 def update(self): self.y += self.speed # 定义子弹类 class Bullet(GameObject): def __init__(self, x, y): super().__init__(x, y, bullet_image) self.speed = 10 def update(self): self.y -= self.speed # 创建游戏对象 player = Player(SCREEN_WIDTH / 2 - player_image.get_rect().width / 2, SCREEN_HEIGHT - player_image.get_rect().height, player_image) enemies = [Enemy(random.randint(0, SCREEN_WIDTH - enemy_image.get_rect().width), -enemy_image.get_rect().height, enemy_image) for i in range(ENEMY_COUNT)] # 游戏主循环 clock = pygame.time.Clock() while True: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() exit() # 更新游戏对象 player.update() for enemy in enemies: enemy.update() # 绘制游戏对象 screen.blit(background_image, (0, 0)) player.draw(screen) for enemy in enemies: enemy.draw(screen) for bullet in player.bullets: bullet.draw(screen) # 检测碰撞 for enemy in enemies: if player.rect.colliderect(enemy.rect): pygame.quit() exit() for bullet in player.bullets: if bullet.rect.colliderect(enemy.rect): enemies.remove(enemy) player.bullets.remove(bullet) # 更新屏幕 pygame.display.update() # 控制帧率 clock.tick(FPS) ``` 注意,这个游戏还有一些不完美的地方,比如没有限制玩家的移动范围,敌机的速度和生成位置都是固定的,没有动态变化等。你可以在这个基础上进行改进和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值