如何解决我怎样才能让敌方坦克不正确地侵犯围墙边界?
public boolean sagdancarpma() {
boolean carpma=false;
for(int i=0; i<br.solidBricksXPos.length;i++) {
if(this.x==br.solidBricksXPos[i]+40&&(this.y+40>br.solidBricksYPos[i]&&this.y<br.solidBricksYPos[i]+40)) {
carpma=true;
}
}return carpma; }
这是我的碰撞检测。实心砖属于另一类。计算机的坦克被编码在这个 Dusman 类中。此代码仅用于与砖块右侧的碰撞。坦克是 40x40 像素,砖块是 50x50。(我用 40 作为砖块,因为 50 不起作用。)有时“dusman”="敌人坦克穿过砖块。我找不到答案。
public void dusmantank() {
for(int i=0; i<dusmanlar.size();i++)
{ Dusman d= dusmanlar.get(i);
if(d.say==0) {
yonbelirle(d,d.getyon());
d.say=random.nextInt(50);
}
if(d.yon1==1) {
if(d.usttencarpma()) {
yonbelirle(d,1);
}
d.hrk(0,+1);
d.say--;
}
if(d.yon1==2) {if(d.alttancarpma()) {
yonbelirle(d,2);
}
d.hrk(0,-1);
d.say--;
}
if(d.yon1==3) {
if(d.soldancarpma()) {
yonbelirle(d,3);
}
d.hrk(+1,0);
d.say--;
}
if(d.yon1==4) {
if(d.sagdancarpma()) {
yonbelirle(d,4);
}
d.hrk(-1,0);
d.say--;
}
}}
这里是自动移动敌方坦克的代码。 yon1 表示坦克的方向。在此之后,if 语句碰撞检测来了。如果是真的,“yonbelirle”方法确定一个随机方向。我是初学者,你能给我一个简单的答案吗?谢谢你们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。