package org.test.crazyjumpergles; public class Obstacle extends Entity { protected int m_iBlockQuartersFromGround; protected int m_iSizeXBlockQuarters; protected int m_iSizeYBlockQuarters; protected int m_iStartPosAtBlock; protected int m_iStartPosDeltaBlockQuarters; public Obstacle() { super(); } public final void Create(int iAtBlock, int iDeltaQuarters, int iSizeXQuarters, int iSizeYQuarters, int iQuartersFromGround) { String str; this.Reset(); this.m_iStartPosAtBlock = iAtBlock; this.m_iStartPosDeltaBlockQuarters = iDeltaQuarters; this.m_iSizeXBlockQuarters = iSizeXQuarters; this.m_iSizeYBlockQuarters = iSizeYQuarters; this.m_iBlockQuartersFromGround = iQuartersFromGround; super.SetSize(this.m_iSizeXBlockQuarters * m_game.GetUnitBlockQuarterSize(), this.m_iSizeYBlockQuarters * m_game.GetUnitBlockQuarterSize(), false); super.SetCollSize(super.GetSizeX(), super.GetSizeY()); if ((iQuartersFromGround > 0) && (iSizeYQuarters == 0x20)) { str = "column_" + (new Integer(iSizeXQuarters)).toString(); } else { str = "obstacle_" + (new Integer(iSizeXQuarters)).toString() + "x" + (new Integer(iSizeYQuarters)).toString(); } super.SetSpriteAnimCurrentFrameByTexName(str); } private int GetEndPosAtBlock() { int num = (int) Math.ceil((double)((this.m_iStartPosDeltaBlockQuarters + this.m_iSizeXBlockQuarters) * 0.25f)); return (this.m_iStartPosAtBlock + (num - 1)); } @Override public boolean Init() { this.CreateSpriteAnim(1, 0, false); this.CreateSpriteFrame("obstacle_5x4"); this.CreateSpriteFrame("obstacle_5x6"); this.CreateSpriteFrame("obstacle_5x9"); this.CreateSpriteFrame("obstacle_5x12"); this.CreateSpriteFrame("obstacle_6x4"); this.CreateSpriteFrame("obstacle_6x5"); this.CreateSpriteFrame("obstacle_6x8"); this.CreateSpriteFrame("obstacle_6x13"); this.CreateSpriteFrame("obstacle_9x9"); this.CreateSpriteFrame("obstacle_11x11"); this.CreateSpriteFrame("obstacle_11x13"); this.CreateSpriteFrame("obstacle_12x6"); this.CreateSpriteFrame("obstacle_14x8"); this.CreateSpriteFrame("obstacle_20x3"); this.CreateSpriteFrame("obstacle_21x2"); this.CreateSpriteFrame("column_4"); this.CreateSpriteFrame("column_6"); this.CreateSpriteFrame("column_8"); this.CreateSpriteFrame("column_20"); return true; } @Override public void Reset() { super.Reset(); super.m_bVisible = false; } @Override public boolean Tick(int deltaMS) { if (!super.Tick(deltaMS)) { return false; } Ground ground = m_game.GetGround(); if (ground.IsBlockVisible(this.m_iStartPosAtBlock) || ground.IsBlockVisible(this.GetEndPosAtBlock())) { super.m_bVisible = true; float num = (ground.GetBlockPosOnScreen(this.m_iStartPosAtBlock) - m_game.GetUnitBlockHalfSize()) + (this.m_iStartPosDeltaBlockQuarters * m_game.GetUnitBlockQuarterSize()); float num2 = this.m_iBlockQuartersFromGround * m_game.GetUnitBlockQuarterSize(); super.SetPositionX(num + super.GetHalfSizeX(), false); super.SetPositionY((m_game.GetGroundPosY() - num2) - super.GetHalfSizeY(), false); } else { super.m_bVisible = false; } return true; } }