搅拌机中的 addObject() python
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 项目
尝试使用 worldPosition
定位 dunMarker
您可能还想使用 for 循环来获取网格而不是两条边。
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()
我运行这里有点墙: 我的意思是,对于一个空的,移动,然后在现场添加一个平面,然后移动,然后添加一个平面等,然后最终得到一个 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 项目
尝试使用 worldPosition
定位 dunMarker
您可能还想使用 for 循环来获取网格而不是两条边。
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()