【发布时间】:2022-08-19 18:51:44
【问题描述】:
我找不到访问 vrender 变量以从另一个 if 语句或另一个函数更改其值的方法。
这只是我对python不太了解吗?
from ursina import *
class voxel:
value = 0
x = 0
y = 0
z = 0
def set(self,x,y,z,v):
voxel.value = v
voxel.x = x
voxel.y = y
voxel.z = z
def object(self,type,other):
if type == 1:
vrender = Entity(model=\'cube\', scale=1,
color=rgb(voxel.value * 2.6 + 84, voxel.value * -8 + 84, voxel.value * -8.4 + 84),
position=(voxel.x, voxel.y, voxel.z), visable=False)
if type == 2:
if voxel.value > other:
vrender.visible = False
-
欢迎来到堆栈溢出。该变量不是“in”
if块。您应该阅读有关 Python 的教程,并确保您了解变量范围和变量寿命.在尝试编写类之前,您应该确保了解这些东西如何用于普通函数,并且在尝试使用诸如ursina之类的第三方库制作游戏之前,您应该确保您了解所有这些东西。尝试完成教程。此代码中有多个问题,正确解释问题超出了 Stack Overflow 问题的范围。 -
除了在
type == 2时没有定义voxel之外,这段代码还有很多问题。您正在隐藏内置的object和type名称,您在滥用实例变量与类变量,您的类缺少__init__,等等。 -
添加到已经说明的问题。
vrender可能不在if type == 2中定义,因为可以在type为1 之前调用该函数。
标签: python python-3.x ursina