Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 敌方测距_Python_Python 3.x - Fatal编程技术网

Python 敌方测距

Python 敌方测距,python,python-3.x,Python,Python 3.x,我目前正在用非常简单的代码制作一个Megaman游戏。现在,我遇到了一些敌人探测问题 现在,我在我的敌人周围有一个矩形,存储在一个txt文件中,我想检查角色的命中框是否与敌人矩形发生碰撞,敌人矩形是他的视线 基本上,碰撞检测是有效的,但是当Megaman在一个敌人的射程内时,他们的反应就像Megaman也在他们的射程内一样 这里是重要的代码,粗体字是为了帮助 *hunterrange=Rect(enemy[1]-100,enemy[2],400,40) enemy.append(

我目前正在用非常简单的代码制作一个Megaman游戏。现在,我遇到了一些敌人探测问题

现在,我在我的敌人周围有一个矩形,存储在一个txt文件中,我想检查角色的命中框是否与敌人矩形发生碰撞,敌人矩形是他的视线

基本上,碰撞检测是有效的,但是当Megaman在一个敌人的射程内时,他们的反应就像Megaman也在他们的射程内一样

这里是重要的代码,粗体字是为了帮助

    *hunterrange=Rect(enemy[1]-100,enemy[2],400,40)
    enemy.append(hunterrange)
    if enemy[8].colliderect(hitbox):
        enemy[3]=0
        if modelx[X]<enemy[1]:
            enemy[4]=1
        elif modelx[X]>enemy[1]:
            enemy[4]=-1
        rangecheck=True
    else:
        rangecheck=False*

    if enemy[0]=="Hunter":            
        hunterbox=Rect(enemy[1],enemy[2],30,40)           


        if rangecheck==False:                
            if enemy[5]<enemy[1]<enemy[6] and enemspace<=0:
                enemspace=5
                enemy[3]=random.randint(-4,4)                    
                if enemy[3]>0:
                    enemmove=ERWALK
                    enemy[4]=-1
                elif enemy[3]<0:
                    enemmove=ELWALK
                    enemy[4]=1
                elif enemy[3]==0:
                    enemmove=EIDLE
            elif enemy[1]>=enemy[6]:
                enemmove=ELWALK
                enemy[1]=enemy[6]-5
            elif enemy[1]<=enemy[5]:
                enemmove=ERWALK
                enemy[1]=enemy[5]+5

       ***if rangecheck==True:                
            enemmove=ESHOOT***
*hunterrage=Rect(敌人[1]-100,敌人[2],400,40)
敌人。附加(狩猎)
如果敌人[8]。碰撞矩形(hitbox):
敌人[3]=0
如果modelx[X]敌人[1]:
敌人[4]=-1
rangecheck=True
其他:
rangecheck=False*
如果敌人[0]=“猎人”:
猎人箱=Rect(敌人[1],敌人[2],30,40)
如果rangecheck==False:

如果有敌人[5],请把它砍成一个小段。另外,
global
和硬编码索引(例如
敌方[7]
)通常是不好的标志。为什么任何东西都存储在文本文件中?或者这与此无关。它存储在文本文件中的原因是,我可以指定世界上每个敌人的位置。基本上,它是为每个敌人确定具体位置。是的,txt文件字符串与实际问题无关。
敌人
中的每个项目代表什么?特别是:指数1、3、4和8是什么?