You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.1 KiB

  1. -- 保存到文件
  2. function cc.HeightFieldComponent:save(fileName)
  3. local xml = {};
  4. xml.HeightMin = self:getHeightMin();
  5. xml.HeightMax = self:getHeightMax();
  6. xml.GridSize = self:getGridSize();
  7. local box = self:getBoundingBox();
  8. xml.BoundingBox = {min = box:getMin() ; max = box:getMax()};
  9. xml.HeightFieldFile = fileName .. ".png";
  10. local heightField = self:getHeightField();
  11. heightField:saveToPNG(xml.HeightFieldFile);
  12. table.saveFile(xml , fileName);
  13. end
  14. -- 从文件载入,并创建HeightFieldComponent实例
  15. function cc.HeightFieldComponent:load(fileName)
  16. local xml = table.loadFile(fileName);
  17. local heightField = cc.HeightField:createFromImage(xml.HeightFieldFile
  18. , xml.HeightMin
  19. , xml.HeightMax
  20. );
  21. local component = cc.HeightFieldComponent:create(heightField
  22. , cc.BoundingBox:new(xml.BoundingBox.min , xml.BoundingBox.max)
  23. , xml.HeightMin
  24. , xml.HeightMax
  25. , xml.GridSize
  26. );
  27. component:_notifyFileName(fileName);
  28. component:_notifyHeightMapPath(xml.HeightFieldFile);
  29. return component;
  30. end