Обзор: я создал небольшой скрипт Minecraft'like поколения с Python и Panda3D, я положил его на нитку, так что я могу использовать Time.Sleep() и другие функции, но любые идеи, почему поток падает?Panda3D Python пронизывающие аварии
Что я сделал: Я создал небольшой скрипт Minecraft'like поколения с Python и Panda3D.
Проблема: Я не могу использовать резьбу с Panda3D.
Здесь является все код, который я создал:
from direct.showbase.ShowBase import ShowBase
from panda3d.core import *
import perlin, colorsys, time
import thread
scaleX = 0.05
scaleZ = 0.05
blockSize = 1
size = 16
bottom = -70
waiter = 0.001
sn = perlin.SimplexNoise()
def threaded_generator():
for x in range(size):
for z in range(size):
time.sleep(waiter)
y = sn.noise2(x*scaleX, z*scaleZ)
# Load the environment model.
cube = loader.loadModel("Test")
# Reparent the model to render.
cube.reparentTo(render)
# Apply scale and position transforms on the model.
cube.setScale(blockSize, blockSize, blockSize)
cube.setPos(x*blockSize, z*blockSize, round(y))
cy = round(y)
while cy > bottom:
cy -= 1
cube = loader.loadModel("Test")
# Reparent the model to render.
cube.reparentTo(render)
# Apply scale and position transforms on the model.
cube.setScale(blockSize, blockSize, blockSize)
cube.setPos(x*blockSize, z*blockSize, round(cy))
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
#Ambient
alight = AmbientLight('alight')
alight.setColor(VBase4(0.2, 0.2, 0.2, 1))
alnp = render.attachNewNode(alight)
render.setLight(alnp)
#Directional
dlight = DirectionalLight('dlight')
dlight.setColor(VBase4(0.8, 0.8, 0.5, 1))
dlnp = render.attachNewNode(dlight)
dlnp.setHpr(0, -60, 0)
render.setLight(dlnp)
#Cubes
print("Ding!")
thread.start_new_thread(threaded_generator,())
app = MyApp()
app.run()
Для меня это начинает генерировать немного,
, то он останавливается, не кажется, заканчивается, иногда он останавливается довольно быстро, а иногда он останавливается через несколько секунд.
~ Coolq :)
Звучит круто, но пока у меня нет на самом деле нет Panda3D установки на моем компьютере, я не могу test it :( – linusg
Нет проблем! Было уже поздно, когда я отправил это, извините! –