我正在使用lite-C制作游戏(与C语法完全相同)。我无法使这个循环工作。
它在编译时在这一行给出了一个错误。
for(int i = 0; i < (cantenemigu * 3); i += 3)
我有一个数组,其中包含创建敌人的位置信息。
数组包含x,y,z坐标。
cantenemigu是阵列中存在的敌人数量。
通过这个循环,我将获得每个敌人的信息并创建它。
[编辑] 答案没有用。我加了;在写这篇文章时非常不自觉。
也许问题出在其他地方;
这是洞部分。
int cantenemigu = 3;
var posenemigu[] = {-900, 550, -10, -1100, 1600, -10, 70, 1680, 20};
void load_enemigunan()
{
for(int i = 0; i < (cantenemigu * 3); i += 3)
{
ent_create("targetr.mdl",vector(posenemigu[i],
posenemigu[i + 1],
posenemigu[i + 2]),NULL);
}
}
如果我不添加&lt; br&gt;
,这是代码我解决了。
这很有效。
int i
for(i = 0; i < 3*cantenemigu; i += 3)
{
ent_create("targetr.mdl",vector(posenemigu[i],
posenemigu[i + 1],
posenemigu[i + 2]),NULL);
}
在C#中,之前没有声明过。我认为在C中也是如此(或者可能是编译器中的错误)。
答案 0 :(得分:7)
for (int i = 0; i < (cantenemigu * 3); i += 3)
;
之后不应该有i += 3
。
答案 1 :(得分:2)
摆脱第3 ;
。
for(int i = 0; i < (cantenemigu * 3); i += 3)
答案 2 :(得分:2)
尝试将代码更改为:(请注意我所做的是将i
的声明移到for
循环之外。
int cantenemigu = 3;
var posenemigu[] = {-900, 550, -10, -1100, 1600, -10, 70, 1680, 20};
void load_enemigunan(){
int i;
for(i = 0; i < (cantenemigu * 3); i += 3){
ent_create("targetr.mdl",vector(posenemigu[i],
posenemigu[i + 1],
posenemigu[i + 2]),NULL);
}
}
答案 3 :(得分:1)
您的vector
来电看似错过了一个右括号。
ent_create(
"targetr.mdl",
vector(
posenemigu[i],
posenemigu[i + 1],
posenemigu[i + 2],
NULL
);
答案 4 :(得分:0)
for(int i = 0; i < (cantenemigu * 3); i += 3;)
错误是什么?最后一个分号不应该在那里。
循环的主体是什么?
什么类型的变量是cantenemigu
?是否可以强制执行int
?