void RunWallAnimations() { for (int i = 0; i < wallAnimations.Count; i++) { WallAnimation wallAnimation = wallAnimations[i]; int value = -1; if (wallAnimation.isX) { value = wallAnimation.wall.x; } if (wallAnimation.isY) { value = wallAnimation.wall.y; } if (value < wallAnimation.goalValue) { value = Mathf.Min(value + wallAnimation.thevel * TICSPERFRAME, wallAnimation.goalValue); } else { value = Mathf.Max(value - wallAnimation.thevel * TICSPERFRAME, wallAnimation.goalValue); } wallAnimation.thevel += wallAnimation.theacc; if (wallAnimation.isX) { wallAnimation.wall.x = value; } if (wallAnimation.isY) { wallAnimation.wall.y = value; } if (value == wallAnimation.goalValue) { wallAnimations.Remove(wallAnimation); } } }
private void AddWallAnimation(walltype walltype, bool isX, bool isY, int goalValue, int thevel, int theacc) { WallAnimation newAnimation = new WallAnimation(); newAnimation.wall = walltype; newAnimation.isX = isX; newAnimation.isY = isY; newAnimation.goalValue = goalValue; newAnimation.thevel = thevel; newAnimation.theacc = theacc; // Check to see if this already has animation. for (int i = 0; i < wallAnimations.Count; i++) { if (wallAnimations[i] == newAnimation) { return; } } wallAnimations.Add(newAnimation); }