Java 3d映射

时间:2014-05-28 21:56:42

标签: java map 3d

我正在创建一个基于书Developing Games in Java的3D游戏(您无需阅读或知道要回答的书)。要创建地图,我使用的是指定墙,地板,天花板等的.map文件。我只是不明白墙是如何创建的。不是使用开始x(坐标)和最终x,开始z(坐标)和最终z,他只使用一个x坐标和一个z坐标。命令是:

#    v [x] [y] [z]        - Define a vertex with floating-point 
#                           coords (x,y,z).
#    mtllib [filename]    - Load materials from an external .mtl 
#                           file.
#    usemtl [name]        - Use the named material (loaded from a 
#                           .mtl file) for the next floor, ceiling,
#                           or wall.
#    ambientLightIntensity 
#        [value]          - Defines the ambient light intensity
#                           for the next room, from 0 to 1.
#    pointlight [v]       - Defines a point light located at the  
#        [intensity]        specfied vector. Optionally, light
#        [falloff]          intesity and falloff distance can
#                           be specified.
#    player [v] [angle]   - Specifies the starting location of the
#                           player and optionally a starting 
#                           angle, in radians, around the y-axis.
#    obj [uniqueName]     - Defines an object from an external
#        [filename] [v]     OBJ file. The unique name allows this
#        [angle]            object to be uniquely identfied, but
#                           can be "null" if no unique name is 
#                           needed. The filename is an external
#                           OBJ file. Optionally, the starting 
#                           angle, in radians, around the y-axis 
#                           can be specified.
#    room [name]          - Defines a new room, optionally giving
#                           the room a name. A room consists of
#                           vertical walls, a horizontal floor
#                           and a horizontal ceiling. Concave rooms
#                           are currently not supported, but can be
#                           simulated by adjacent convex rooms.
#    floor [height]       - Defines the height of the floor of 
#                           the current room, using the current
#                           material. The current material can
#                           be null, in which case no floor 
#                           polygon is created. The floor can be
#                           above the ceiling, in which case a 
#                           "pillar" or "block" structure is 
#                           created, rather than a "room".
#    ceil [height]        - Defines the height of the ceiling of 
#                           the current room, using the current
#                           material. The current material can
#                           be null, in which case no ceiling
#                           polygon is created. The ceiling can be
#                           below the floor, in which case a 
#                           "pillar" or "block" structure is 
#                           created, rather than a "room".
#    wall [x] [z]         - Defines a wall vertex in a room using
#         [bottom] [top]    the specified x and z coordinates.
#                           Walls should be defined in clockwise 
#                           order. If "bottom" and "top" is not
#                           defined, the floor and ceiling height
#                           are used. If the current material is
#                           null, or bottom is equal to top, no
#                           wall polygon is created.

也许你可以理解“墙上指示”并详细解释一下?我大约2天测试一些“理论”,但我仍然无法理解。我没有得到的其他东西:'v'命令是什么?

PS:有没有办法从外部程序创建.map文件(比如构建这种.map文件的程序)?什么是顶点?

非常感谢

1 个答案:

答案 0 :(得分:1)

wall命令的作用是定义一个墙顶点。这意味着它定义了墙的角落或端点。您需要提供多个墙顶点来定义墙。例如:

wall 0 0
wall 0 2
wall 2 2

这将定义一个由90度角落中的两个直片组成的墙。

墙的高度由最后两个可选参数定义。我不确定你怎么会创建单独的墙壁,但也许你可以找到一个迷宫的例子。