mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-03 12:28:03 +08:00
Merge branch 'develop' into feature/add-joystick-component
This commit is contained in:
@ -65,6 +65,7 @@ class MyGame extends BaseGame with TapDetector {
|
||||
isInfinite: false,
|
||||
isAlternating: true,
|
||||
offset: 0.5,
|
||||
onComplete: () => print("onComplete callback"),
|
||||
);
|
||||
greenSquare.addEffect(combination);
|
||||
}
|
||||
|
||||
49
doc/examples/layers/.gitignore
vendored
Normal file
49
doc/examples/layers/.gitignore
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in
|
||||
# VS Code which you may wish to be included in version control, so this line
|
||||
# is commented out by default.
|
||||
#.vscode/
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.packages
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
|
||||
# Web related
|
||||
lib/generated_plugin_registrant.dart
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Exceptions to above rules.
|
||||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
|
||||
|
||||
android
|
||||
ios
|
||||
macos
|
||||
web
|
||||
10
doc/examples/layers/.metadata
Normal file
10
doc/examples/layers/.metadata
Normal file
@ -0,0 +1,10 @@
|
||||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: 9d58a87066d1da98eb06826918e4b90cc76ae0ef
|
||||
channel: master
|
||||
|
||||
project_type: app
|
||||
3
doc/examples/layers/README.md
Normal file
3
doc/examples/layers/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# layers
|
||||
|
||||
Simple project to showcase the layer feature of Flame
|
||||
BIN
doc/examples/layers/assets/images/background.png
Normal file
BIN
doc/examples/layers/assets/images/background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 550 B |
BIN
doc/examples/layers/assets/images/enemy.png
Normal file
BIN
doc/examples/layers/assets/images/enemy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 228 B |
BIN
doc/examples/layers/assets/images/player.png
Normal file
BIN
doc/examples/layers/assets/images/player.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 392 B |
82
doc/examples/layers/lib/main.dart
Normal file
82
doc/examples/layers/lib/main.dart
Normal file
@ -0,0 +1,82 @@
|
||||
import 'package:flutter/material.dart' hide Animation;
|
||||
import 'package:flame/game.dart';
|
||||
import 'package:flame/sprite.dart';
|
||||
import 'package:flame/layer/layer.dart';
|
||||
import 'package:flame/flame.dart';
|
||||
|
||||
import 'dart:ui';
|
||||
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
await Flame.util.fullScreen();
|
||||
|
||||
final playerSprite = await Sprite.loadSprite('player.png');
|
||||
final enemySprite = await Sprite.loadSprite('enemy.png');
|
||||
final backgroundSprite = await Sprite.loadSprite('background.png');
|
||||
|
||||
runApp(LayerGame(playerSprite, enemySprite, backgroundSprite).widget);
|
||||
}
|
||||
|
||||
class GameLayer extends DynamicLayer {
|
||||
final Sprite playerSprite;
|
||||
final Sprite enemySprite;
|
||||
|
||||
GameLayer(this.playerSprite, this.enemySprite) {
|
||||
preProcessors.add(ShadowProcessor());
|
||||
}
|
||||
|
||||
@override
|
||||
void drawLayer() {
|
||||
playerSprite.renderRect(
|
||||
canvas,
|
||||
const Rect.fromLTWH(50, 50, 150, 150),
|
||||
);
|
||||
enemySprite.renderRect(
|
||||
canvas,
|
||||
const Rect.fromLTWH(250, 150, 100, 50),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class BackgroundLayer extends PreRenderedLayer {
|
||||
final Sprite sprite;
|
||||
|
||||
BackgroundLayer(this.sprite) {
|
||||
preProcessors.add(ShadowProcessor());
|
||||
}
|
||||
|
||||
@override
|
||||
void drawLayer() {
|
||||
sprite.renderRect(
|
||||
canvas,
|
||||
const Rect.fromLTWH(50, 200, 300, 150),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class LayerGame extends Game {
|
||||
Sprite playerSprite;
|
||||
Sprite enemySprite;
|
||||
Sprite backgroundSprite;
|
||||
|
||||
Layer gameLayer;
|
||||
Layer backgroundLayer;
|
||||
|
||||
LayerGame(this.playerSprite, this.enemySprite, this.backgroundSprite) {
|
||||
gameLayer = GameLayer(playerSprite, enemySprite);
|
||||
backgroundLayer = BackgroundLayer(backgroundSprite);
|
||||
}
|
||||
|
||||
@override
|
||||
void update(double dt) {}
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
gameLayer.render(canvas);
|
||||
backgroundLayer.render(canvas);
|
||||
}
|
||||
|
||||
@override
|
||||
Color backgroundColor() => const Color(0xFF38607C);
|
||||
}
|
||||
28
doc/examples/layers/pubspec.yaml
Normal file
28
doc/examples/layers/pubspec.yaml
Normal file
@ -0,0 +1,28 @@
|
||||
name: layers
|
||||
description: Simple project to showcase the layer feature of Flame
|
||||
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
|
||||
version: 1.0.0+1
|
||||
|
||||
environment:
|
||||
sdk: ">=2.7.0 <3.0.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flame:
|
||||
path: ../../../
|
||||
|
||||
cupertino_icons: ^0.1.3
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
assets:
|
||||
- assets/images/background.png
|
||||
- assets/images/enemy.png
|
||||
- assets/images/player.png
|
||||
File diff suppressed because one or more lines are too long
@ -15,7 +15,7 @@ void main() {
|
||||
|
||||
class TiledGame extends BaseGame {
|
||||
TiledGame() {
|
||||
final TiledComponent tiledMap = TiledComponent('map.tmx');
|
||||
final TiledComponent tiledMap = TiledComponent('map.tmx', 16.0);
|
||||
add(tiledMap);
|
||||
_addCoinsInMap(tiledMap);
|
||||
}
|
||||
@ -30,8 +30,12 @@ class TiledGame extends BaseGame {
|
||||
final comp = AnimationComponent(
|
||||
20.0,
|
||||
20.0,
|
||||
Animation.sequenced('coins.png', 8,
|
||||
textureWidth: 20, textureHeight: 20),
|
||||
Animation.sequenced(
|
||||
'coins.png',
|
||||
8,
|
||||
textureWidth: 20,
|
||||
textureHeight: 20,
|
||||
),
|
||||
);
|
||||
comp.x = obj.x.toDouble();
|
||||
comp.y = obj.y.toDouble();
|
||||
|
||||
Reference in New Issue
Block a user