public static void init() { if (mInitialized) { return; } mInitialized = true; dialogs = new List <Dialog>(); shadow = new CSprite(); //Esta tambien el shadow solo que llena toda la pantalla shadow.setImage(Resources.Load <Sprite>("Sprites/dialogShadow/shadow")); shadow.setName("Dialog - Background"); shadow.setSortingLayerName("UI"); shadow.setXY(0, CGameConstants.SCREEN_HEIGHT / 3 * 2); shadow.setWidth(CGameConstants.SCREEN_WIDTH); shadow.setVisible(false); characterPortrait = new CSprite(); characterPortrait.setName("Character - Portrait"); characterPortrait.setSortingLayerName("UI"); characterPortrait.setXY(shadow.getX() + MARGIN, shadow.getY() + MARGIN); characterPortrait.setVisible(false); characterPortrait.setSortingOrder(1); text = new CText(""); text.setFontSize(500.0f); text.setVisible(false); text.setXY(CGameConstants.SCREEN_WIDTH / 4 + MARGIN, shadow.getY() + MARGIN); text.setWidth(CGameConstants.SCREEN_WIDTH / 4 * 3 - MARGIN * 2); }
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; } } }