flutter3d_game_platformer 0.8.0
flutter3d_game_platformer: ^0.8.0 copied to clipboard
A second genre: a runner who jumps twice and dashes, things to collect, hazards to fall into, and checkpoints to come back at.
0.8.0 #
Moves with the stack to 0.8.0, whose flutter3d_hardware changes
PassEncoder.bindTexture to return bool and makes every backend forget its
bindings at bindPipeline. Nothing in this package changed.
Its flutter3d_* dependencies ask for ^0.8.0.
0.7.1 #
Released with the rest of the stack at 0.7.1. Nothing in this package changed. The release it resolves against builds from pub.dev again and no longer crashes Metal on the first unlit draw.
Its flutter3d_* dependencies ask for ^0.7.1, and it asks for vector_math ^2.4.3.
0.7.0 #
- Breaking.
bridge.dart, and the readouts in it.PurseReadout,LivesStripandReadoutStyleare widgets, and the simulation's barrel names no Flutter now; importpackage:flutter3d_game_platformer/bridge.dartfor them. The library is new in this package, and the three widgets are all it exports: the runner, the camera and the level are drawn by the game.doc/boundary-0.7.0.mdhas the same move for the shooter and racing. - Breaking.
flutter3d_gameis no longer a dependency. The simulation importsflutter3d_simby name rather than throughflutter3d_game, which stopped re-exporting it. A game that reachedflutter3d_gameor a simulation type through this package's pubspec alone names them in its own.CollisionHeightfield, which the runner switches on, arrives throughflutter3d_sim's re-export offlutter3d_physics, one step where 0.6.0 had two, and the floor that says which version has it isflutter3d_sim: ^0.7.0. - A spawned enemy carries the name its level gave it.
EnemyKindpasses an entity'snameto theActorit spawns, which is whatActorSystem.byNameandremapEntitySaveinflutter3d_sim0.7.0 read. - The runner, the coins, the hazards and the checkpoints are otherwise 0.6.0's.
0.6.0 #
- A floor, and no code. The runner, the coins, the hazards and the
checkpoints are byte for byte 0.5.2's.
flutter3d_gameis required at^0.6.0, and the floor is still the only place the chain can be said: the runner switches onCollisionHeightfield, which arrives here through two re-exports, and nothing else can state which version underneath has it.
0.5.2 #
- The runner stands on ground made of samples.
CollisionHeightfieldjoined the sealed hierarchy of collision shapes, and a sealed hierarchy is what made the compiler name every switch that had to think about it — the runner's included — rather than letting one fall through to a default and answer wrongly for ever. It answers with the standing half-height, the same as it does for a box. - Needs
flutter3d_game0.5.1 or above, which is where that shape reaches this package from. A floor rather than a note: the type arrives through a re-export, so nothing else can say which version underneath has it.
0.5.1 #
- The runner's facing, its movement wish and the swinging blocks call
Portablerather thandart:math, so a run replays identically in a browser and on the VM. Seeflutter3d_sim0.5.1 for what that is and why. No API change; a saved run from 0.5.0 replays a hair differently in its last bits.
0.5.0 #
Breaking. Fifteen per-step fields become events, and the genre ships its readouts.
- The simulation's five channels and the runner's ten are gone. Two of them
were bools that could carry one of a thing: two enemies stomped in a step
made one sound, and a level whose checkpoints differ could not say which had
just been passed. What replaces them is
PlatformerSimulation.events, which the runner writes into as well — so a landing and the block that gave way under it arrive one after the other rather than as two flags on two objects. Runner.poundedThisStepsurvives, and says why: the simulation reads it later in the same step to shatter the block underfoot. That is wiring; what a game should read isLanded.pounded.- The game's walk over every mechanism, once a frame, is gone. Springs, crumbling platforms and breakable blocks are reported by the simulation on the pass it already makes.
PurseReadoutandLivesStrip. The purse draws what is in it rather than a fixed list of kinds, and a run with no life limit draws nothing at all.Difficultyis read inRunner.applyDamage, the one door damage reaches the runner through.- Slopes, gliding and water. A ramp is quicker down than up — by scaling the speed asked for rather than adding a push, because the controller's own friction eats any push a walkable slope could justify. A held jump turns a fall into a drift, after the apex, so the two meanings of that button do not fight. Water is a volume rather than a surface, with its tuning on the pool so a stream and a tar pit are two different pools.
- Points, power-ups and a camera that looks up the road. Collectibles gain a worth separate from how many they are; a chain of them is worth more and breaks on a death. The follow camera leads by a third of a second of travel, horizontally only.
0.4.1 #
Hunter, an enemy that comes after the player across the gaps: it follows the level's flow field and jumps where the field says the next step is a jump, on a grid baked with the enemies'JumpReach.kind: hunterin a level'senemyentity, withsightandpatience; it needs no route.
0.4.0 #
- No changes of its own; the version moves with the workspace, whose sibling constraints name a single release. The README's closing section now says what the engine around this package is.
0.3.0 #
- No changes of its own. The workspace is released as a set, in the order
ARCHITECTURE.md§16 gives, so this package's version moves with the rest and its constraints on its siblings move with it.
0.2.0 #
- A second genre, and the instrument that tested the first: a runner who jumps twice and dashes, coins, hazards, moving platforms, gates and a summit.
- Acceptance was "no edit to the engine" and it took five, all in input, each of which generalised the engine rather than accommodating a game.