[英]addObject() in blender with python
我在这里碰到一堵小墙:我的意思是,要腾空,先移动,然后当场添加一个平面,然后再移动,然后添加一个平面,等等,最后将得到一个100X100的纯文本,所以我编写了脚本:
import bge
dunWidth = 100 #meters/tiles
dunHeight = 100 #meters/tiles
b = 0
a = 0
add= bge.logic.getCurrentScene().addObject
def main():
global b, a
cont = bge.logic.getCurrentController()
dunMarker = cont.owner
#Movement Calculation: (X, Y, Z)
while b < dunWidth:
b += 1
add("FloorTile", "DunMarker",0)
dunMarker.applyMovement((1,0,0), False)
while a < dunHeight:
add("FloorTile", "DunMarker",0)
a += 1
dunMarker.applyMovement((0,1,0), False)
#dunMarker.applyMovement((0,-dunHeight,0), False)
main()
但是相反,令我惊讶的是,它首先添加了图块,然后忽略了add()进行了循环,因此结果是0x0y处为1x1图块,而100x100y为空端...在这里我做错了多少事情? Aaaand,既然我们在这里,您将如何改善编码?(尝试在这里学习;))
pd,是的,Roguelike 3D项目
尝试将dunMarker
在worldPosition
您可能还想将其用于循环以获取网格而不是两个边缘。
import bge
dunWidth = 100 #meters/tiles
dunHeight = 100 #meters/tiles
a=0
b=0
add= bge.logic.getCurrentScene().addObject
def main():
global a,b
cont = bge.logic.getCurrentController()
dunMarker = cont.owner
for b in range(0,dunWidth,2):
dunMarker.worldPosition=(b,a,0)
t=add("FloorTile", "DunMarker",0)
for a in range(0,dunHeight,2):
dunMarker.worldPosition = (b,a,0)
add("FloorTile", "DunMarker",0)
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.