zpchavez / lvv Goto Github PK
View Code? Open in Web Editor NEWLi'l Vroom Vrooms is a Micro Machines roguelike! (or at least it aspires to be)
Li'l Vroom Vrooms is a Micro Machines roguelike! (or at least it aspires to be)
Create a base car class that can be extended for cars of different shapes and sizes.
Create a static and/or dynamic obstacle that has a collision body defined by a polygon, rather than a simple circle or rectangle.
I've been thinking about how to enforce driving on the track. Here's what I've come up with.
First to 8 wins, or leader after 3 laps. If there's a tie, additional players are eliminated and sudden death starts.
2-player (or team)
Both players start at 4 points. Winner gains a point and loser loses a point.
3-player
1st place gets 2 points,
2nd place gets 0 points
3rd place loses 2 points
4-player
1st place gains 2 points
2nd place gains 1 point
3rd place loses 1 point
4th place loses 2 points
It's difficult to straighten out again after turning. When you've stopped turning, the car should snap to the nearest, say, 15 degrees.
It's currently possible to spin in a circle without otherwise moving, which makes no sense. Rotation should only be applied when velocity is not zero.
I'm thinking of doing:
Everyone disappears and no winner is declared
Maybe we should make the game dimensions a wide-screen ratio so that fullscreen really is fullscreen?
Image layers placed in the Tiled editor will appear in the game.
Everything that can be set in the track loader form should be settable in query params.
I noted some weirdness with free-for-all scoring. Sometimes the winner will lose points instead of gaining them. Once it said "BLUE WINS!" even though red had filled their points bar. Both of these examples occurred in four-player games.
This could be useful for tracks that use an image layer as the background. The polyline tool in particular could be used to outline parts of the track that should act as obstacles.
I'm thinking we could use full tubes of toothpaste for jumps. I'd like implement some way that you can enter the tube at the lowest point, and from there you can drive off the sides or jump off the end, but approaching from the sides or the end results in a collision.
Update the current car-driving example to include some stuff to run into. Let's start with just circles and squares.
I want to make an obstacle that looks like a spilled hand soap bottle, and then have various shapes and size of spots of spilled soap that serve the same purpose as the "rough" terrain.
I'd like to create a json object shape that we can use to define different level layouts. Here's a rough idea of what I think it could look like to start:
{
playerStartLocations : [[250, 200], [350, 200]...],
obstacles : [
{
type: 'DynamicObstacle::ClownNose',
x : 50,
y : 150,
rotation : 45
}
]
}
We'll need to expand on it as we add more features (e.g., race markers, more interesting backgrounds).
I'm thinking that obstacle types can be defined by stating a key that corresponds to the factory, and then that factory's key for that object type, delimited by something like ::
Implement a type of tile that limits speed when driven over
Create a new game state that demos multiple cars (at least two, ideally four), each of which can be controlled using separate gamepads.
Phaser throws out a lot of data when loading tilemaps. Additionally, tilemaps contain data that would be useful to having during State.preload()
. We can avoid needing to duplicate information from tilemaps that is either not imported, or is imported too late, by including them as modules instead of having Phaser load them via XHR.
I've done this on my branch for #17. Works really well.
The small jumps created by the Q-tip obstacle #51 are hardly noticeable. I'd like to try adding and/or replacing the current scaling effect with some kind of translation effect and maybe add some kind of shadow.
Some tiles represent ramps. When driven over, the sprite should be scaled up in size to simulate being in the air. While in the air, the player is immune to cliff tiles (#17). Handling should also be different while in the air: turning, accelerating, and breaking should not be possible. Air time should be correlated with the speed of the car while crossing the edge of the ramp tile.
Allowing the player to jump over obstacles may be difficult because of the question of what to do if the player lands while still over the obstacle. If I remember right, it seems like MM never placed ramps in places where this might happen. We could just do the same.
Implement a type of tile (e.g. oil or ice) that reduces friction when driven over.
Create an obstacle factory class and three obstacle classes, one each for the dynamic boxes, static boxes and the giant clown nose.
We may want to look into this alternative tilemap implementation that is supposed to have better performance.
It also features an easy way to turn map objects into p2 physics bodies.
Although the goal is procedurally generated tracks, I think it will be very difficult to generate them completely from scratch. Instead, how I picture it working is that tracks will be composed of shuffled tiles, with each tile being human-designed to interlock with other tiles. The simplest map could just to two halves, with multiple possible left-tiles and multiple possible right-tiles. Perhaps obstacles can be generated in a separate process that is more from-scratch, adding to the possible combinations substantially.
This issue will be the first step towards accomplishing this. It will include:
assets\tracks
, and since the browser can't read the file system, the new track will need to be manually added to assets\tracks.js
.In this initial feature, there will be no tiles or randomizing. No obstacles either, for now. Thoughts?
I want the Q-tip obstacles to delineate the track, and for them to be such that you can drive over them, but it does slow you down to be driving over them all the time. My first thought is to have you jump if you hit them fast enough, or slow down otherwise. I think I'll try implementing that and see how it feels.
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.