Python 如何知道在pygame中空格键按下是否超过2秒
所以,我用pygame制作了一个简单的游戏,其中一个忍者必须躲避他面前的障碍物,问题是我不知道如何知道空格键(用于跳跃)是否按下超过2秒 我在很多网站上搜索过这个答案,但都找不到 请注意,我是一个初学者 这是我的密码:Python 如何知道在pygame中空格键按下是否超过2秒,python,pygame,Python,Pygame,所以,我用pygame制作了一个简单的游戏,其中一个忍者必须躲避他面前的障碍物,问题是我不知道如何知道空格键(用于跳跃)是否按下超过2秒 我在很多网站上搜索过这个答案,但都找不到 请注意,我是一个初学者 这是我的密码: import pygame,time #import pygame.init() #pygame initialization screen = pygame.display.set_mode((0,0)) pygame.quit() canvas = pygame.di
import pygame,time #import
pygame.init() #pygame initialization
screen = pygame.display.set_mode((0,0))
pygame.quit()
canvas = pygame.display.set_mode((1000,780)) #creating screen
caption = pygame.display.set_caption("Ninja Run") #creating caption
iconImage = pygame.image.load("C:/Garv/python/pygame/Ninja Game/Ninja_logo.png")
icon = pygame.display.set_icon(iconImage) #drawing icon image
land = pygame.image.load("C:/Garv/python/pygame/Ninja Game/land.jfif") #land image
sky = pygame.image.load("C:/Garv/python/pygame/Ninja Game/sky.jfif") # sky image
x = 50
y = 594
start = time.time()
ninjaRun = [pygame.image.load("C:/Garv/python/pygame/Ninja Game/ninja running 1.jpg"),pygame.image.load("C:/Garv/python/pygame/Ninja Game/ninja running 2.jpg")] #ninja images
ninjaImage = ninjaRun[0]
# ninjaStars = pygame.image.load("C:/Garv/python/pygame/Ninja Game/ninja stars.png")
class Ninja:
def __init__(self,canvas,start,run,image,x,y): #Initializing of variables
self.canvas = canvas
self.start = start
self.run = run
self.image = image
self.x = x
self.y = y
def ninja(self): #ninja movement method
self.image = ninjaRun[0]
self.time = 15
self.sec = int((time.time()-self.start)*self.time)
if self.sec % 2 != 0:
self.image = ninjaRun[0]
elif self.sec % 2 == 0:
self.image = ninjaRun[1]
self.canvas.blit(self.image, (self.x,self.y)) #ninja draw
player = Ninja(canvas,start,ninjaRun,ninjaRun[0],x,y) #calling Ninja class
cnt = 0
startTime = time.time()
while True: #main loop
for event in pygame.event.get(): #event handler
if event.type == pygame.QUIT: #quit handler
pygame.quit()
import sys
sys.exit()
if event.type == pygame.KEYDOWN: #keydown
if event.key == pygame.K_SPACE:
player.y -= 200
if player.y < 394:
player.y += 200
if event.type == pygame.KEYUP: #keyup
if event.key == pygame.K_SPACE:
player.y += 200
# canvas.blit(ninjaStars, (500,500))
pygame.draw.rect(canvas,(250,250,250),(500,500,20,20))
canvas.blit(land, (0,718)) #land drawing
canvas.blit(sky, (0,0)) #sky drawing
player.ninja() #ninja drawing
pygame.display.update() #display update
import pygame,time#import
pygame.init()#pygame初始化
screen=pygame.display.set_模式((0,0))
pygame.quit()
canvas=pygame.display.set_模式((1000780))35;创建屏幕
caption=pygame.display.set_caption(“忍者奔跑”)#创建字幕
iconImage=pygame.image.load(“C:/Garv/python/pygame/Ninja Game/Ninja_logo.png”)
icon=pygame.display.set_图标(iconImage)#绘制图标图像
land=pygame.image.load(“C:/Garv/python/pygame/Ninja-Game/land.jfif”)#land-image
sky=pygame.image.load(“C:/Garv/python/pygame/Ninja-Game/sky.jfif”)#天空图像
x=50
y=594
开始=时间。时间()
ninjaRun=[pygame.image.load(“C:/Garv/python/pygame/Ninja Game/Ninja running 1.jpg”)、pygame.image.load(“C:/Garv/python/pygame/Ninja Game/Ninja running 2.jpg”)#忍者图像
ninjaImage=ninjaRun[0]
#忍者之星=pygame.image.load(“C:/Garv/python/pygame/Ninja-Game/Ninja-stars.png”)
忍者等级:
定义初始化(self、canvas、start、run、image、x、y):#初始化变量
self.canvas=画布
self.start=开始
self.run=run
self.image=image
self.x=x
self.y=y
定义忍者(自我):#忍者移动方法
self.image=ninjaRun[0]
self.time=15
self.sec=int((time.time()-self.start)*self.time)
如果self.sec%2!=0:
self.image=ninjaRun[0]
elif self.sec%2==0:
self.image=ninjaRun[1]
self.canvas.blit(self.image,(self.x,self.y))#忍者绘画
玩家=忍者(画布,开始,忍者,忍者[0],x,y)#召唤忍者职业
cnt=0
startTime=time.time()
如果为True:#主循环
对于pygame.event.get()中的事件:#事件处理程序
如果event.type==pygame.QUIT:#退出处理程序
pygame.quit()
导入系统
sys.exit()
如果event.type==pygame.KEYDOWN:#KEYDOWN
如果event.key==pygame.K_空间:
player.y-=200
如果player.y<394:
player.y+=200
如果event.type==pygame.KEYUP:#KEYUP
如果event.key==pygame.K_空间:
player.y+=200
#帆布布利特(忍者(500500))
pygame.draw.rect(画布,(250250),(500500,20,20))
画布.布利特(土地,(0718))#土地图纸
canvas.blit(天空,(0,0))#天空绘制
player.ninja()#忍者绘图
pygame.display.update()#显示更新
用于获取调用后的毫秒数:
为True时:#主循环
对于pygame.event.get()中的事件:#事件处理程序
如果event.type==pygame.QUIT:#退出处理程序
# [...]
如果event.type==pygame.KEYDOWN:#KEYDOWN
如果event.key==pygame.K_空间:
space\u start=pygame.time.get\u ticks()
# [...]
如果event.type==pygame.KEYUP:#KEYUP
如果event.key==pygame.K_空间:
space\u end=pygame.time.get\u ticks()
如果空间结束-空间开始>=2000:
# [...]
按键时,用time.time()
记录时间,释放后,检查差值是否大于2秒。@Loocid在pygame中,您应该使用pygame.time.get_ticks()