c++ - 返回基于两个变量 C++ 的类对象

标签 c++ class

我需要有关类的问题的帮助。我知道如何解决它,但我想知道是否有比我目前的想法更好的解决方案。

每个 Class Tile ObjectClass Player Object 都有一个 xy 位置。我想知道是否有办法加快速度。我目前的想法是像这样的 if-else 语句:

if(x==1) {
    if(y==1) {

       return tileone1;

    } else if(y==2) {  

       return tileone2;

    } else if(y==3) {  

       return tileone3;

    } else if(y==4) {  

       return tileone4;

    } else if(y==5) {  

       return tileone5;

    } //......

} else if(x==2) { 
      if(y==1) {

       return tiletwo1;

    } else if(y==2) {  

       return tiletwo2;

    } else if(y==3) {  

       return tiletwo3;

    } else if(y==4) {  

       return tiletwo4;

    } else if(y==5) {  

       return tiletwo5;

    } //......
} //......

问题是为每个图 block 编写此代码会花费太长时间。

我需要一个函数,它会根据 Object Player 的 x 和 y 输入返回一个 Tile 对象。任何其他解决方案也很好。

Tile getTileBasedOnCoords(int x, int y){

}

最佳答案

有多种方法可以实现这一点。最简单的方法(考虑到问题)似乎是将所有 Tile 对象放入数组中,并返回具有相应索引的对象。

关于c++ - 返回基于两个变量 C++ 的类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34537539/

相关文章:

c++ - 在 C 窗口中将参数传递给线程的最佳方法是什么?

c++ - std::for_each 实现的限制

c++ - 每个范围类型的模板特化

c++ - 无论如何使用用户输入的类项目名称来访问该项目中的数据?

c++ - C++ 类的大小

c++ - 使用类的 C++ 方法的链表

java - 发布编译错误,检查控制台?

javascript - 具有 2 个数组的类数组

c++ - 收不到UDP广播包

c++ - 使用基本模板标识符时继承