我是来问我的代码有什么问题?我正在制作一个游戏引擎,我想最简单的分类玩家类型的方法就是把它们放到不同的脚本中,然后在那里使用它们。然而,我有一个轻微的问题,这样做,并没有线索如何解决它。你知道吗
下面是我得到的错误:
Traceback (most recent call last): File "C:\Users\Harry Court\AppData\Local\Programs\Python\Python36-32\projects\Game Engine\main.py", line 48, in <module> topDownPlayerControls() NameError: name 'topDownPlayerControls' is not defined
附言:如果有更简单的方法,请告诉我!你知道吗
你知道吗主.py你知道吗
import pygame
from playerSelection import *
import ctypes
from ctypes.wintypes import HWND, LPWSTR, UINT
# Window Size
display_w = 1366
display_h = 768
# Initialize and Set Display
pygame.init()
gameDisplay = pygame.display.set_mode((display_w, display_h))
pygame.display.set_caption("The Joker Engine (Version Undecided) - By Harrison Court")
clock = pygame.time.Clock()
# Ctypes ID's
IDYES = 6
IDNO = 7
x = (display_w * 0.45)
y = (display_h * 0.8)
# Colours
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
running = True
gameDisplay.fill(white)
while running:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# Misc.
if event.key == pygame.K_ESCAPE:
quitWindow = ctypes.windll.user32.MessageBoxW(0, "Are you sure you want to quit?", "Warning!", 4)
# Confirm they want to leave.
if quitWindow == IDYES:
quit()
topDownPlayerControls()
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
你知道吗玩家选择.py地址:
import pygame
from tkinter import Tk, Frame, Menu
import ctypes
from ctypes.wintypes import HWND, LPWSTR, UINT
x = (300)
y = (300)
playerImg = pygame.image.load('Player.png')
class playerMovement():
def player(x,y):
gameDisplay.blit(playerImg, (x,y))
def topDownPlayerControls():
if event.type == pygame.KEYDOWN:
# Left & Right
if event.key == pygame.K_LEFT:
x_change = -5
print("Left")
elif event.key == pygame.K_RIGHT:
x_change = 5
print("Right")
# Up & Down
if event.key == pygame.K_DOWN:
y_change = 5
print("Down")
elif event.key == pygame.K_UP:
y_change = -5
print("Up")
# If no keys are pressed, do this...
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
if event.key == pygame.K_DOWN or event.key == pygame.K_UP:
y_change = 0
# Player Movement
x += x_change
y += y_change
更新脚本:
你知道吗主.py地址:
import pygame
from playerSelection import *
from gui import *
from tkinter import *
import ctypes
from ctypes.wintypes import HWND, LPWSTR, UINT
# Define stuff
player = playerMovement()
# Window Size
display_w = 1366
display_h = 768
# Initialize and Set Display
pygame.init()
gameDisplay = pygame.display.set_mode((display_w, display_h))
pygame.display.set_caption("The Joker Engine (Version Undecided) - By Harrison Court")
clock = pygame.time.Clock()
# Ctypes ID's
IDYES = 6
IDNO = 7
x = (display_w * 0.45)
y = (display_h * 0.8)
# Colours
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
running = True
gameDisplay.fill(white)
# Make sure the game isn't dying on us.
while running:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# Misc.
if event.key == pygame.K_ESCAPE:
quitWindow = ctypes.windll.user32.MessageBoxW(0, "Are you sure you want to quit?", "Warning!", 4)
# Confirm they want to leave.
if quitWindow == IDYES:
quit()
player.displayPlayer(x,y)
player.topDownPlayerControls
pygame.display.update()
clock.tick(60)
pygame.quit()
quit()
你知道吗玩家选择.py地址:
import pygame
from tkinter import Tk, Frame, Menu
import ctypes
from ctypes.wintypes import HWND, LPWSTR, UINT
x = (300)
y = (300)
display_w = 1366
display_h = 768
gameDisplay = pygame.display.set_mode((display_w, display_h))
playerImg = pygame.image.load('Player.png')
class playerMovement():
def displayPlayer(self,x,y):
gameDisplay.blit(playerImg, (x,y))
def topDownPlayerControls(self):
if event.type == pygame.KEYDOWN:
# Left & Right
if event.key == pygame.K_LEFT:
x_change = -5
print("Left")
elif event.key == pygame.K_RIGHT:
x_change = 5
print("Right")
# Up & Down
if event.key == pygame.K_DOWN:
y_change = 5
print("Down")
elif event.key == pygame.K_UP:
y_change = -5
print("Up")
# If no keys are pressed, do this...
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
x_change = 0
if event.key == pygame.K_DOWN or event.key == pygame.K_UP:
y_change = 0
# Player Movement
x += x_change
y += y_change
错误消息是函数
topDownPlayerControls
未定义。这是因为您试图将其作为自由函数调用。但是,这个函数是在playerMovement
类中定义的。因此,您首先需要创建一个playerMovement
对象,然后对该对象调用topDownPlayerControls
函数。它看起来像这样:看起来在那之后你还会有很多其他的失败,但我将把它作为练习:)
相关问题 更多 >
编程相关推荐