Python 在游戏中创建随机事件
我正在用Python开发一个名为“黑屏模拟器”的小游戏(但它不仅仅是一个黑屏,我希望有一些事件。比如随机图像弹出的时间,但现在我只有一个你经常点击鼠标的时间和一个你经常按按钮的时间)总之,我需要把这些随机的。这是我试过的系统:Python 在游戏中创建随机事件,python,random,Python,Random,我正在用Python开发一个名为“黑屏模拟器”的小游戏(但它不仅仅是一个黑屏,我希望有一些事件。比如随机图像弹出的时间,但现在我只有一个你经常点击鼠标的时间和一个你经常按按钮的时间)总之,我需要把这些随机的。这是我试过的系统: import pygame from pygame.locals import * import time import random pygame.init() width, height = 640, 480 screen=pygame.display.set_mo
import pygame
from pygame.locals import *
import time
import random
pygame.init()
width, height = 640, 480
screen=pygame.display.set_mode((width, height))
Event1 == False
Event2 == False
screen_rect=screen.get_rect()
player=pygame.Rect(180, 180, 20, 20)
mouseClickNumber = 0
keyPressNumber = 0
a = random.choice(Event1, Event2)
a = True
def Event1:
if pygame.mouse.get_pressed(button 1):
mouseClickNumber = mouseClickNumber + 1
time.sleep(20)
clickHappyFunTime = False
print mouseClickNumber
mouseClickNumber = 0
def Event2:
if pygame.key.get_pressed:
keyPressNumber = keyPressNumber + 1
time.sleep(20)
buttonPressTime = False
print keyPressNumber
keyPressNumber = 0
我的系统包括将两个事件设置为False,然后在两个变量Event1和Event2之间选择random.choice,但是当我运行它时,def Event2:是无效语法。我只是做错了什么吗?函数定义必须包含参数列表,即使它是空的。像这样:
def Event1():
然而,这里还有很多其他问题
不会将Event1==False
分配给False
,它只是将Event1
与Event1
进行比较-这将引发False
,因为您还没有任何命名为NameError
的内容,但即使您这样做了,也没有任何用处,尤其是你忽略了结果Event1
- 如果您解决了这个问题,
将失败,因为a=random.choice(Event1,Event2)
只接受一个参数,一个可供选择的序列,而不是每个选项的单独参数;您想要choice
a=random.choice([Event1,Event2])
- 如果您解决了这个问题,它将在
和False
之间进行选择。也许你想让它在以后定义的两个函数中进行选择?但在定义它们之前,不能在它们之间进行选择。早些时候将它们定义为不同的值没有帮助;它只是选择较早的值。(同样,对普通值和函数重复使用相同的名称非常容易混淆。)False
- 如果您解决了这个问题,那也没关系,因为
将替换您选择的值a=True
- 您从不直接调用函数,也不会将它们附加到事件中,这样它们就会被
间接调用,因此它们没有多大用处PyGame
- 如果调用这些函数,它们将引发一个
,因为在函数中赋值给UnboundLocalError
会使其成为局部变量,从而隐藏该名称的全局变量。为了避免这种情况,您需要添加mouseClickNumber
全局mouseClickNumber
在GUI应用程序中冻结整个GUI,防止其更新屏幕time.sleep