本文主要是介绍<Godot>工厂游戏练习笔记一<2D网格地图>,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、编写网格数据类,用于存储网格地图中的数据:
class_name Grid2D_Data## 单元格数据,传入一个场景
var data:Resource:set(val):if val != null:data = val
## 网格长宽
var grid_size:Vector2i = Vector2i(10,10):set(val):if val:grid_size = val
## 网格数据
var map_data = []
## 初始化
func _init(p_data:Resource,p_grid_size:Vector2i):data = p_datagrid_size = p_grid_sizepass
## 创建网格数组
func create(parent:Node2D):for x in grid_size.x:var array = []for y in grid_size.y:var grid_data = data.instantiate()grid_data.grid_position = Vector2i(x,y)grid_data.name = "grid%s_%s" % [x,y]parent.add_child(grid_data)array.append(grid_data)map_data.append(array)pass
## 获取指定网格坐标数组
func get_cell(pos:Vector2i):if pos <= grid_size and pos >= Vector2i(0,0):return map_data[pos.x][pos.y]else :return nullpass
## 获取指定列网格
func get_row(x:int):return map_data[x]pass
## 打印网格内容
fu
这篇关于<Godot>工厂游戏练习笔记一<2D网格地图>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!