コード例 #1
0
    override public void update()
    {
        base.update();

        if (getState() == STATE_STAND || getState() == STATE_WALKING)
        {
            //Obtener los dos tiles (en vertical) que están adelante mío
            List <CTile> frontTiles = new List <CTile>();
            CAndy        player     = CGame.inst().getPlayer();
            int          yFrom      = (int)(getY() + getHeight() - verticalDetectRange * CTileMap.Instance.getTileHeight());
            int          xFrom      = 0;

            if (getFlip())
            {
                xFrom = (int)((getX() - getRightOffsetBoundingBox() + getWidth()));
            }
            else
            {
                xFrom = (int)(getX() + getLeftOffsetBoundingBox() - CTileMap.Instance.getTileWidth() * horizontalDetectRange);
            }

            attackRange.setXY(xFrom, yFrom);
            attackRange.setWidth(horizontalDetectRange * CTileMap.Instance.getTileWidth());
            attackRange.setHeight(verticalDetectRange * CTileMap.Instance.getTileHeight());
            attackRange.setScaleX(horizontalDetectRange * CTileMap.Instance.getTileWidth());
            attackRange.setScaleY(verticalDetectRange * CTileMap.Instance.getTileHeight());

            if (attackRange.collidesRect(player))
            {
                setState(STATE_ATTACKING);
                return;
            }
        }
    }