小编Goo*_*e _的帖子

如何在按住拍摄按钮的情况下继续拍摄

我最近在我的编码中加入了射速,但是,我必须连续按下开火按钮才能射击。

有没有办法处理 KEYDOWN 事件,这样当我按下开火按钮时,不是发射一颗子弹,只要我按住开火按钮,子弹就会定期发射?

工作代码如下;

主游戏模块

import pygame
from constants import *
from player import Player
from Projectile import Projectile
from pygame.math import Vector2

pygame.init()

screen = pygame.display.set_mode([500, 500])

pygame.display.set_caption('Labyrinth')

# Spawn player

player = Player(50, 50)
all_sprites_list = pygame.sprite.Group()
all_sprites_list.add(player)

projectiles = pygame.sprite.Group()

clock = pygame.time.Clock()
previous_time = pygame.time.get_ticks()
speed = 12


done = False


# ----- Event Loop

while not done:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        elif event.type == pygame.KEYDOWN:

            if event.key …
Run Code Online (Sandbox Code Playgroud)

python pygame

5
推荐指数
1
解决办法
453
查看次数

失去健康之间的延迟

我最近在我的游戏中实施了一个健康系统(尽管是一个非常基本的健康系统),它的工作原理是,如果我的玩家与敌人发生碰撞,我就会失去健康.然而,我面临的问题是,只要我与敌人保持联系,我每秒就会失去60次健康.

我真正想要的是:每当玩家与敌人发生碰撞时,它就会失去一大块健康,但在至少一秒过去之前不会失去更多的健康.我尝试过使用time.sleep,但这似乎只是冻结整个程序而不仅仅是健康系统.这是我的代码;

主要游戏

import pygame
from constants import *
from player import Player
from enemy import Enemy
import time


pygame.init()

screen = pygame.display.set_mode([500, 500])

pygame.display.set_caption('Labyrinth')

# Spawn player

player = Player(50, 50)
all_sprites_list = pygame.sprite.Group()
all_sprites_list.add(player)


# Spawn enemy

enemy = Enemy(150, 150)
enemy_sprites = pygame.sprite.Group()
enemy_sprites.add(enemy)



clock = pygame.time.Clock()

done = False


# ----- Event Loop

while not done:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.changespeed(-3, …
Run Code Online (Sandbox Code Playgroud)

python pygame

3
推荐指数
1
解决办法
74
查看次数

标签 统计

pygame ×2

python ×2