moduscreateorg / evade2 Goto Github PK
View Code? Open in Web Editor NEWEVADE2 Source code for the Arduboy platform
License: MIT License
EVADE2 Source code for the Arduboy platform
License: MIT License
Object class has hooks to implement string rendering instead of array of lines.
The strings should be rendered scaled and rotated just like any object.
Maybe theta should rotate around x instead of z.
Enemies need to have a concept of health or shields, so it takes multiple hits to destroy.
If new start point of next line in image is the same as the the last end point, we already calculated the rotate/scale/etc. so we can just use it!
This ticket is just for the creation of the character set.
I think we can get away with just capital letters A-Z, 0-9, and a few punctuation marks (like period, comma, exclamation point)
Import new svg and img header
I have no way of testing fonts at the current time.
Weapons:
Only stars render
Bullets should collide with enemies and the enemies should explode!
Let's try to make another instructional insert like the prior art. @jaymesjones, please work on setting up whatever milestones are required to get this printed and delivered NLT 12/13/2017.
Implement Font class to render vector font to the screen.
Remove reliance on Print class.
Bosses
Score to be counted similar to EVADE 1
Travel, enemy hits, enemy deaths.
Score to be presented at the end of the game
Remove arduboy.nextFrame() call.
- Savings 160 bytes.
- Don't know if this is really needed, given all the processing we're doing.
- Files affected:
- evade.ino
- Change:
- Comment out:
// if (!(arduboy.nextFrame()))
// return;
Enemies
Add bullet firing logic
Should show points earned and a "Try again" message.
Power and health and that sort of thing really belong in the Player class.
Player is currently not written as a class, but it could be expressed as one.
Likely enemies and bullets should be classes, too.
This will be an on-going task until we get to production and will me marking PRs against this.
All Music and SFX will leverage the Sound
Class that @mschwartz created.
EEPROM
Render Object as a vector object, per Jay's tool output
Controls:
Make the LEDs do something
There's no benefit to generating hex values inside the image data. The hex is actually much harder to read, and all the values are ones we care to read as decimals.
Also, the compiler generates warnings for the conversions since 0xff is both -1 and 255 and 255 doesn't fit into a signed byte!
Convert all usages of float to fixed point. Implement fixed point math routines. Implement sin/cos lookup table for fixed point maths.
Any numbers we keep internally that need to be displayed on screen should be done as BCD. We would need a BCD class that knows how to add and subtract and render.
We can make an evade/img directory and then:
#include "img/whatever.h"
This will allow us to keep all those image .h files out of the main directory.
We might be able to just use Arduboy2Core class. We'd have to implement our own sBuffer and our own drawImage methods.
The amount of RAM savings is unknown at this point. We may have a performance boost as well as code savings.
B button is afterburner.
Afterburner consumes energy.
When energy is empty, afterburner stops working.
Maybe power up you shoot or crash into that gives you more energy?
Energy slowly regenerates.
Z currently a word, so we have 16M or so before the universe wraps and we get some rounding errors.
Making Z a float will greatly increase the range before wrap. Probably to a point we'll never ever see it unless we leave the game running for days and we don't have some level ending logic.
Handle controls, move camera, render hud, deal with resources, etc.
Enemies need to shoot!
Play, audio on/off setting
Shows EVADE 2 art.
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.