//--------------------------------------------------------------------------------------------------------- // Methods //--------------------------------------------------------------------------------------------------------- public void MoveGrid() { ForwardIterator pFor = new ForwardIterator(this); float currSpeed = this.deltaX; if (this.moveForward == false) { currSpeed *= -1; } Component pNode = pFor.first(); if (this.goingDown) { while (!pFor.isDone()) { GameObject pGameObj = (GameObject)pNode; pGameObj.x += currSpeed; pGameObj.y += this.deltaY; pNode = pFor.next(); } this.goingDown = false; } else { while (!pFor.isDone()) { GameObject pGameObj = (GameObject)pNode; pGameObj.x += currSpeed; pNode = pFor.next(); } } }
//------------------------------------------------------------------------------- // Constructor //------------------------------------------------------------------------------- public ReverseIterator(Component pStart) { Debug.Assert(pStart != null); Debug.Assert(pStart.holder == Component.Container.Composite); ForwardIterator pForward = new ForwardIterator(pStart); this.pRoot = pStart; this.pCurr = this.pRoot; this.pPrev = null; // initialize reverse pointer Component pPrevNode = this.pRoot; Component pNode = pForward.first(); while (!pForward.isDone()) { pPrevNode = pNode; // go to next node pNode = pForward.next(); if (pNode != null) { pNode.pReverse = pPrevNode; } } pRoot.pReverse = pPrevNode; }