tnibert / kill-the-aliens Goto Github PK
View Code? Open in Web Editor NEWA vertical scrolling space shooter game
Home Page: https://ironlotussoftware.com/kill-the-aliens
License: Mozilla Public License 2.0
A vertical scrolling space shooter game
Home Page: https://ironlotussoftware.com/kill-the-aliens
License: Mozilla Public License 2.0
Boss AI is handled in obj.py, in the move() method of the Boss class. The Boss has three modes: 0 is no movement, 1 is aimless moving, 2 is chase ship, 3 is fire at ship. There is an if elif block in the move() method to determine mode and do appropriate behavior. Mode 3 hasn't been implemented yet and its place is denoted with a comment.
It is possible that implementing mode 3 will make the game to hard, yet to be determined.
So mode 3 should be implemented or AI can just be totally overhauled and made way more awesome. If anyone wants to play with it, have at it, totally encouraged. If someone who knows more about AI than me wants to make it better, by all means, please.
Any questions or discussion, just drop a post. Cheers!
Currently you have to retap the space bar if you want to shoot another bullet. Holding down the space bar should result in firing multiple bullets.
When player collides with boss, all life is lost, health goes into negative. Need to make only one health be lost, player explode, reset position. Working in new branch.
We want to increase the difficulty of the game by making it possible to shoot and explode the power ups before getting them, making the player have to be a bit more strategic about how they move and what they shoot.
At the end of the game, after you kill the boss, the boss will explode leaving little blocks for chunks taken out of it where the explosions occurred. If at this point, you fly the space ship over the boss, the ship will disappear under the blank boxes. E.g. the blank boxes are being rendered to the screen after (and therefore over) the ship.
This may be a very simple fix. It may be more complicated in that the blank boxes are part of the explosion animation and the explosion animation must be rendered over top of the ship/saucers/boss etc.
As it stands, ship can respawn over a saucer. When this happens the ship automatically dies again as it registers as a collision. We should perform a check before respawning to ensure that this cannot occur.
As of right now the artwork is kind of thrown together for the purpose of getting the game made. If someone who is a better artist than I would like to make some art for the game, it would be greatly appreciated. If you make an image file of the same dimensions as the sprite image files with the same file name, it should just plug right into the program. The opening and closing screens are especially bad, and the game map is just a bunch of green dots on a black background.
In theory you can adjust the sprite image sizes and it will work without any code modification. The exception to this is the explosion image which is split into frames. The width of each frame is defined by the xstep parameter of the toframes() function in obj.py (currently 120 pixels, should be put into it's own variable). There is code to for sprite animation (eg like the explosion), but it will need more code added to implement it, but it's definitely not a huge step if desire is there.
We can extend it as much as we want to make it look cool and have special effects and all that. Ideas are more than welcome.
Must make score for killing saucers a function of how far up you are vertically. E.g. closer to top of screen is higher score. Must make score for boss a function of how many lives player has left. E.g. more life equals higher score.
Currently, if the player is shot by the boss while fighting the boss, the player will explode and respawn. When the player respawns, the boss may shoot them before they are able to move again repeatedly until they die. This is caused by the player taking time to explode without being able to move. Need to perhaps add in an if condition specifying to not shoot if the player is exploding.
Self explanatory enough. I was thinking one for the ability to shoot three bullets at a time for an amount of time and one for a force field or enhanced defense for an amount of time. Could extend MoveableObject class and fly down the screen at random times. Other ideas are welcome.
Only observed this once. Saucer witnessed flying across screen in normal route with its image set to an explosion frame. Not doing anything with it until I can replicate it.
Update to allow spaceship to move vertically on screen. Must implement collision detection with final boss.
Project goal to add capacity for networked multiplayer. Network code should probably be put into its own py file. Might be good to make space ships able to fly vertically up and down active game screen.
Project goal to add in a way to save top high scores and display them at the end of the game.
Right now, when you kill the boss, he explodes and each of the explosions have a black square appended to the end of the explosion that stays on screen to give the appearance of chunks being taken out of the boss.
This has two unintended consequences.
When you fly the space ship over these chunks, the chunks are rendered over top of the space ship so the space ship disappears. In addition, working on implementing new art that does not feature a black background and the black squares do not integrate well into this.
Making the black square be a transparent square will solve these issues.
Audio support needs to be implemented. Music in background. Possibly sound effects for explosions and the like. Open to input, not sure how music and sound effects will go together given the amount of explosions constantly occurring.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.