(RPG maker) Create RPG-style or similar games more simply with Flame.
MIT License
Bot releases are visible (Hide)
getValueGenerator
from BonfireGame
. Now use generateValues
from your component.addParticle
from BonfireGame
. Now use addParticle
from your component.ValueGeneratorComponent
BonfireOpacityEffect
.tmj
,tsj
) .flame
to 1.2.0
- CHANGELOG
gameRef.overlays
to gameRef.overlayManager
GameComponent.shouldRemove
to GameComponent.isRemoving
showFPS
in BonfireTiledWidget
and BonfireWidget
.MatrixMapGenerator
. Class that can help you create a map using a double matrix. Doc
TerrainBuilder
. Class that can help you create a map using a double matrix with Sprite. SpriteSheetModel
enabledDiagonalMovements
param in MovementByJoystick
to control if you want diagonal movements.scene
support. Now you can create a "cutscene" in an easy way:
gameRef.startScene([CameraSceneAction()])
.gameRef.stopScene()
.CameraSceneAction
DelaySceneAction
MoveComponentSceneAction
AwaitCallbackSceneAction
JoystickMoveToPosition
. New:
enabledMoveCameraWithClick
param to enable movements of the camera with click and move movements.mouseButtonUsedToMoveCamera
param to set what button of the mouse you can use to move the camera.mouseButtonUsedToMoveToPosition
param to set what button of the mouse you can use to set the position target. Default is secondary
(right mouse button).Tiles
to the mixin TileRecognizer
.focusNode
, autofocus
and mouseCursor
in BonfireWidget
and BonfireTiledWidget
.Camera
.StateController
. The method update
is now void update(double dt, T component)
. Now you can receive what component belongs to the update method in case that your controller is used in many components.removeLife
method in Attackable
.offset
param from Tiled layers are now considered.dynamicAbove
in tile.MiniMap
widget DOC.Published by RafaelBarbosatec over 2 years ago
addParticle(Particle particle)
in gameRef
.Attackable
system.checkCanReceiveDamage
method in Attackable
mixin. You can do override this method to implements your own rule that who can receive damage or not.void receiveDamage(
double damage,
dynamic identify,
)
in Attackable
now is
void receiveDamage(
AttackFromEnum attacker,
double damage,
dynamic identify,
)
animateZoom
method in Camera
.MovementByJoystick
.gameRef
from a GameComponent
.ImageLayer
.TalkDialog
.DirectionAnimation
mixin.Movement
mixin. Added onMove
method, which you can override to listen to component movements.dPadAngles
default value equals false in MovementByJoystick
.WithSpriteAnimation
.Follower
mixin.WithAssetsLoader
mixin.WithSprite
mixin.WithSpriteAnimation
mixin.FlyingAttackObject
.radAngleDirection
param to angle
in simpleAttackRangeByAngle
;animationUp
to animation
in simpleAttackRange
and simpleAttackRangeByAngle
. You should now use the default animation (to the right).a_star_algorithm
.Offset
to Vector2
in Camera.moveToPositionAnimated
.moveToPositionAnimated
in camera
.marginFromOrigin
param in simpleAttackRangeByAngle
.RotationPlayer
.We're striving to reduce the distance between Flame and Bonfire, relying more and more on Flame components under the hood now that it is stable. In this version we are following the standardization of using Vector2
for position
and size
and using PositionComponent
as the base for Bonfire components. Also, 'FlameGame' and the Flame's Camera are now used instead of custom implementations we had before. Some small features were lost, but nothing that the Flame's team isn't capable of adding over time.
Vector2 size
instead of double height
and double width
.Vector2
instead of Offset
and Size
.camera.animateSimpleRotation
and camera.animateLoopRotation
are not available anymore.ObjectCollision
. Now it is possible to override onCollision
and return false
so the object will not collide with anything or block the passage.Pushable
.name
and id
in TiledObjectProperties
.SimpleDirectionAnimation
Lighting
GameColorFilter
left
,right
,top
,bottom
in GameComponent
enabledSensor
in Sensor
SimpleDirectionAnimation
now only requires idleRight
and runRight
. It will automatically flip horizontally to perform the idle/run left animations. You can disable this feature setting the param enabledFlipX
to false (default = true). enabledFlipY
is also available, but defaults to false (if you set this param to true, only idleUp
and runUp
are needed).getAnimation
(ImageExtension).progress
(BonfireTiledWidget).collision
. #210
worldPositionToScreen
. Now considers zoom.seeAndMoveToPlayer
and seeAndMoveToAttackRange
. Adds notObserved
and observed
.BackgroundImageGame
.simpleAttackRangeByAngle
.animationTop
to animationUp
animationBottom
to animationDown
TalkDialog
Published by RafaelBarbosatec almost 3 years ago
asWidget
.(You can use this to SpriteAnimation or Future)asWidget
.(You can use this to Sprite or Future)Sensor
mixin.1.0.0-releasecandidate.17
TextPaintConfig
to TextStyle
ColorFilter
and Lighting
.replaceAnimation
method in DirectionAnimation
. now you can use this method in SimplePlayer or Enemy to replace SimpleDirectionAnimation
.BonfireGameInterface
.gameRef.changeJoystickTarget
to gameRef.addJoystickObserver
gameRef.addComponent
. now use gameRef.add
or gameRef.addAll
dismissible
param in TalkDialog.show
to avoid the dialogue being dismissed when the back button is pressed or esc key is pressed on desktop.animateLoopRotation
method in camera.animateRotate
to animateSimpleRotation
.MoveToPositionAlongThePath
.TalkDialog.show
: add onClose
.angle
on CameraConfig
or animateRotate
to rotate the camera viewMoveToPositionAlongThePath
logicalKeyboardKeyToNext
in TalkDialog
to logicalKeyboardKeysToNext
, now multiple keys are accepted to advance in the dialoguewasdAndArrows
to KeyboardDirectionalType
allowing both arrows and wasd keys to control the joystickMoveToPositionAlongThePath
simpleAttackMelee
in Enemy.MoveToPositionAlongThePath
angle
param in GameComponent
to rotate component render.1.0.0-releasecandidate.16
1.0.0-releasecandidate.15
changeJoystickTarget
in BonfireGame to make it easy to switch the default joystick events watcher.remove()
method was replaced by removeFromParent()
. Use it to remove a component from the game.keyboardEnable
and keyboardDirectionalType
in Joystick
. Set these attributes through keyboardConfig
.Focus
in CustomGameWidget
to remove "system ding" in MACOS.moveToTarget
method in Camera
to receive null;moveToPositionAlongThePath
for ignoring visible collisionskeyboardDirectionalType
param in Joystick
to enable WASD.FollowerWidget
. With this you can add a widget what follows a component in the game.a_star_algorithm
. now enables diagonal movements.1.0.0-releasecandidate.13
while we fixed the flame update crash change.Published by RafaelBarbosatec about 3 years ago
getScreenPosition
method in GameComponent
.enableDiagonal
param in simpleAttackRange
.visibleComponentsByType
and componentsByType
in BonfireGame
.onTapDown
and onTapUp
in BonfireTiledWidget
and BonfireWidget
.isVisibleInCamera()
in GameComponent
. Now use the isVisible
param to check if this component is visible in camera.Camera
QuadTree
data struct to search of the visible Tiles.ordered_set
Camera
AnimatedObjectOnce
CameraConfig -> moveOnlyMapArea
Lighting
BonfireTiledWidget(
...
cameraConfig: CameraConfig(
smoothCameraEnable: true,
),
);
TapGesture
above
type.shake
method in Camera
.TiledMap
.TalkDialog
core to allow RichText animations:Say
requires a text
param which takes a List<TextSpan>
instead of a String.speed
to TalkDialog
.tileSizeToUpdate
to configure interval of the update map.Camera
MapWorld
to support large maps.List<Tile>
to List<TileModel>
to create manual maps see example.LightingComponent
TalkDialog
. #136
a_star_algorithm
Published by RafaelBarbosatec about 3 years ago
opacity
in GameComponent
to control opacity.tiledjsonreader
1.0.0-releasecandidate.13
version.HasGameRef
for the own BonfireHasGameRef
.drawDefaultLifeBar
.AutomaticRandomMovement
onReady
in BonfireTiledWidget
and BonfireWidget
getComponentDirectionFromMe
in GameComponentExtensions
checkInterval
in GameComponent
GameComponent
.Movement
.Attackable
.constructionMode
drawDefaultLifeBar
backgroundColor
in TalkDialog
.TiledWorldMap
Published by RafaelBarbosatec over 3 years ago
MouseGesture
mixin to listen mouse gestures see documentation
worldPositionToScreen
in BonfireGame
.screenPositionToWorld
in BonfireGame
.isVisibleInCamera
in BonfireGame
.TextInterfaceComponent
GameComponent
SimpleDirectionAnimation
tiledjsonreader
flame
SimpleDirectionAnimation
generateRectWithBleedingPixel
MoveToPositionAlongThePath
overlap
to Image
.MoveToPositionAlongThePath
tiledjsonreader
MoveToPositionAlongThePath
TalkDialog
.SimplePlayer
and SimpleEnemy
.Flame
to 1.0.0-releasecandidate.11
version.objectsBuilder
and registerObject
to register objects in TiledWorldMap
.
TiledWorldMap(
'tiled/map.json',
forceTileSize: Size(32, 32),
objectsBuilder: {
'goblin': (ObjectProperties properties) => Goblin(properties.position),
'torch': (ObjectProperties properties) => Torch(properties.position),
'barrel': (ObjectProperties properties) => BarrelDraggable(properties.position),
'spike': (ObjectProperties properties) => Spikes(properties.position),
'column': (ObjectProperties properties) => ColumnDecoration(properties.position),
'chest': (ObjectProperties properties) => Chest(properties.position),
},
)
TextConfig
to TextPaintConfig
tilePropertiesBelow()
and tilePropertiesListBelow()
in GameComponent to access proprieties of the tile set in Tiled.void onCollision(GameComponent component, bool active)
in ObjectCollision
. Now you can override this method to listen what Component enter in collision.BonfireGame
TalkDialog
.above
in tiled to render above componentstiledjsonreader
Camera
objectsBuilder
in TiledWorldMap
SimpleDirectionAnimation
Published by RafaelBarbosatec over 3 years ago
SimpleDirectionAnimation
Collision
http
SimpleEnemy
FlyingAttackAngleObject
(bug)Camera
.simpleAttackMelee
TapGesture
and DragGesture
together.Joystick
(KEYBOARD) to adds diagonal movement with directional.moveToPosition
of the Player.TapGesture
and DragGesture
together.Sensor
.TalkDialog
.simpleAttackMelee
InterfaceComponent
when selectable
enableCamera
when moveOnlyMapArea
enable.animation.playOnce
in Player and EnemyaddAction
in Joystick
seePlayer
in GameDecoration
cameraMoveOnlyMapArea
CameraConfig
in BonfireTiledWidget
and BonfireWidget
Sprite
in components become Future<Sprite>
.Animation
in components become Future<SpriteAnimation>
.Lighting
use setupLighting(LightingConfig())
.Position
class. Now use Vector2
.MapGame
and BackgroundColorGame
. All others render with priority according to the component's position on the Y axis.Direction
.SimpleDirectionAnimation
.InterfaceComponent
. Now can be selectable.Published by RafaelBarbosatec over 3 years ago
simpleAttackMelee
TapGesture
and DragGesture
together.Joystick
(KEYBOARD) to adds diagonal movement with directional.moveToPosition
of the Player.TapGesture
and DragGesture
together.Sensor
.TalkDialog
.simpleAttackMelee
InterfaceComponent
when selectable
enableCamera
when moveOnlyMapArea
enable.animation.playOnce
in Player and EnemyaddAction
in Joystick
seePlayer
in GameDecoration
cameraMoveOnlyMapArea
CameraConfig
in BonfireTiledWidget
and BonfireWidget
Sprite
in components become Future<Sprite>
.Animation
in components become Future<SpriteAnimation>
.Lighting
use setupLighting(LightingConfig())
.Position
class. Now use Vector2
.MapGame
and BackgroundColorGame
. All others render with priority according to the component's position on the Y axis.Direction
.SimpleDirectionAnimation
.InterfaceComponent
. Now can be selectable.Published by RafaelBarbosatec over 3 years ago