【发布时间】:2012-01-30 22:16:49
【问题描述】:
我正在用 cocos2dx 编写一个游戏,我正在尝试重构一个被调用几次的方法。我想从车辆类型的枚举中返回一个二维数组
我怎样才能让类似下面的东西工作??
int Vehicle::getVehicle(VehicleTypes vehicletypes)
{
int vehicle[8][8] = {0};
switch (vehicleType) {
case Car:
// --- ARRAY 1 ------
vehicle = {
{ 0,0,0,0,0,0,0,0 },
{ 0,0,1,2,5,8,0,0 },
{ 0,0,5,3,4,5,0,0 },
{ 0,0,0,6,0,7,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
};
break;
case Bus:
{
// --- ARRAY 2 ------
Vehicle = {
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,1,2,0,0 },
{ 0,0,3,4,5,0,0,0 },
{ 0,0,6,8,7,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
{ 0,0,0,0,0,0,0,0 },
};
break;
}
default:
break;
}
return vehicle;
}
谢谢
【问题讨论】:
-
如果您在 Bus 案例中使用正确的变量名可能会有所帮助。
Vehicle != vehicle. -
是否要求返回的数组是可修改的?
-
修复上述问题后:似乎与 stackoverflow.com/questions/3716595/… 几乎完全相同。您不能将 int x[][] 作为 int 返回。
标签: c++ multidimensional-array switch-statement cocos2d-x