首页 > 解决方案 > 我怎样才能让敌方坦克不正确地侵犯墙边界?

问题描述

  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”方法确定一个随机方向。我是初学者,你能给我一个简单的答案吗?谢谢你们。

标签: javacollision

解决方案


推荐阅读