Day 9, CoreProgramming-1
Finally, it’s the last section of the core programming within the 2d shooter course; although I feel that these last two sections take 70%+ of the time of the entire course.
To start off, I made, yet another pickup that negatively affects the player. The Purple pickup that notes EnemySpawn is a pick up that randomly chooses between value of 2 to 4 of the enemies and spawns them at random x value locations.
int EnemyCount = Random.Range(2, 4);
for (i = 0; i < EnemyCount; i++)
was used to randomly select the enemyCount and for the value, spawn the enemy. I had a challenge on this as I tried to implement this within the spawn manager. And it definitely made sense to, however I ended up adding the script within the player script with additional variables due to complications in getting all the components from powerup -> player -> Spawn Manager.
Another feature was the laser count. I have already implemented the Laser Counter previously however, I definitely needed more lasers if I want to add wave systems and boss into the game. Since the current Laser Counter had 15 bars, I increased the value of total Laser to 150 and capped it. Added the number display using the UI.Text for easier read. For every 10 lasers, the laser in the laser counter drops under 10 lasers, the laser counter blinks to notify the player. When the value of laser exceeds the 150 from the pickups, laser still maxes out at 150.
The challenges in this came as I use coroutine within the laser counter implementation. For every shot fired under 10, the blinking of the counter went faster and faster. I needed to set another variable that asked if the counter is already blinking. Then if blinking is already true, not start another coroutine of the blinking effect. I tried this within the ienumerator and found that I can’t use 2 parameters when using ‘while’. So I then tried to use if function within the while, and the unity kept crashing. So in the end, I have inputted requesting if blinking=false before starting coroutine within the UpdateLaserCount(). And the coroutine includes the update to blinking=true in order to not call another coroutine on top of it.
Tomorrow is the Thanksgiving. I hope everyone have a good thanksgiving.