c# – 创建网格 – 这是一种有效的方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 创建网格 – 这是一种有效的方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1551字,纯文字阅读大概需要3分钟。
内容图文
![c# – 创建网格 – 这是一种有效的方法](/upload/InfoBanner/zyjiaocheng/783/fd8a96c5298d4b2caf09664e86522448.jpg)
我前几天看了新的Tron电影后,正在制作一个基于文本的小游戏. (正如你在手上花很多时间做一个极客的时候那样).
我已经创建了一个可以放置对象的网格,并且我目前发现我的网格创建需要很长时间.
我对你如何表达这种以及任何对这类事物有用的设计模式,想法,概念等感兴趣.
目前我有4个组成网格的主要“部分”.
首先我有网格本身,其中包含一排’行’
public interface IGrid
{
GridRow[] Rows { get; set; }
}
GridRow反过来包含一个GridCell数组,每个GridCell包含一个IEntity数组(每个可以放在网格单元格中的对象都必须实现IEntity.
public class GridRow
{
public int Index { get; set; }
public GridCell[] Cells { get; set; }
}
public class GridCell
{
public int Index { get; set; }
public IEntity[] Entities { get; set; }
}
在创建网格时需要很长时间.目前200 * 200’网格’需要大约17秒的时间来构成.
我非常确定必须有一种更有效的方法来存储这些数据或使用当前概念创建网格.
欢迎任何和所有建议.
UPDATE
这是我目前组成网格的方式:
public IGrid Create(int rows, int cols, int concurentEntitiesPerCell)
{
var grid = new Grid();
Rows = new GridRow[rows];
grid.Rows = Rows;
var masterCells = new GridCell[cols];
var masterRow = new GridRow();
var masterCell = new GridCell();
for (var i = 0; i < masterCells.Count(); i++)
{
masterCells[i] = new GridCell();
masterCells[i].Index = i;
masterCells[i].Entities = new IEntity[concurentEntitiesPerCell];
}
masterRow.Cells = masterCells;
for (var j = 0; j < rows; j++)
{
grid.Rows[j] = new GridRow();
}
return grid;
}
解决方法:
看来你无缘无故地创造了很多物品?为什么不使用List< List< IEntity>>或多维数组实体[,]?
在任何情况下,我所显示的代码都没有说明减速的原因.你可以在实际分配对象的地方发布代码吗?
内容总结
以上是互联网集市为您收集整理的c# – 创建网格 – 这是一种有效的方法全部内容,希望文章能够帮你解决c# – 创建网格 – 这是一种有效的方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。