From 8b232c9e1d444f310a653c38a06db66f6ee0484b Mon Sep 17 00:00:00 2001 From: Erlend Fagerheim Date: Wed, 15 Apr 2020 22:25:14 +0200 Subject: [PATCH] add sprites example --- doc/examples/sprites/.gitignore | 76 ++++++++++++++++++++ doc/examples/sprites/.metadata | 10 +++ doc/examples/sprites/README.md | 3 + doc/examples/sprites/assets/images/test.png | Bin 0 -> 253 bytes doc/examples/sprites/lib/main.dart | 36 ++++++++++ doc/examples/sprites/pubspec.yaml | 21 ++++++ 6 files changed, 146 insertions(+) create mode 100644 doc/examples/sprites/.gitignore create mode 100644 doc/examples/sprites/.metadata create mode 100644 doc/examples/sprites/README.md create mode 100644 doc/examples/sprites/assets/images/test.png create mode 100644 doc/examples/sprites/lib/main.dart create mode 100644 doc/examples/sprites/pubspec.yaml diff --git a/doc/examples/sprites/.gitignore b/doc/examples/sprites/.gitignore new file mode 100644 index 000000000..3274b351d --- /dev/null +++ b/doc/examples/sprites/.gitignore @@ -0,0 +1,76 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.packages +.pub-cache/ +.pub/ +/build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + +macos + +test + +.flutter-plugins-dependencies diff --git a/doc/examples/sprites/.metadata b/doc/examples/sprites/.metadata new file mode 100644 index 000000000..6a633e088 --- /dev/null +++ b/doc/examples/sprites/.metadata @@ -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: 7fc14a55af64462763d28abfb4e610086c6e0f39 + channel: dev + +project_type: app diff --git a/doc/examples/sprites/README.md b/doc/examples/sprites/README.md new file mode 100644 index 000000000..1c7b99549 --- /dev/null +++ b/doc/examples/sprites/README.md @@ -0,0 +1,3 @@ +# sprites + +A Flame game showcasing how to render 500 sprites diff --git a/doc/examples/sprites/assets/images/test.png b/doc/examples/sprites/assets/images/test.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad83e8c5366f96e35f7267dbe57700882dee9a9 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*Z&L*|A9bW{{Q^>|L@=b zzkmOKd;9_F$hoS3QH*UGOPdp07;B4z z;R%_v9k#1@9HMm^tOT{@NJ!k75VCH{&Lcq78EfIrYp44$rjF6*2Ung9!mRvZ8T literal 0 HcmV?d00001 diff --git a/doc/examples/sprites/lib/main.dart b/doc/examples/sprites/lib/main.dart new file mode 100644 index 000000000..cc811f8df --- /dev/null +++ b/doc/examples/sprites/lib/main.dart @@ -0,0 +1,36 @@ +import 'dart:async'; +import 'dart:math'; + +import 'package:flame/flame.dart'; +import 'package:flutter/material.dart'; +import 'package:flame/components/component.dart'; +import 'package:flame/game.dart'; + +void main() async { + final Size size = await Flame.util.initialDimensions(); + final game = MyGame(size); + runApp(game.widget); +} + +class MyGame extends BaseGame { + MyGame(Size screenSize) { + size = screenSize; + } + + @override + void onAttach() { + super.onAttach(); + + initSprites(); + } + + void initSprites() async { + final r = Random(); + List.generate(500, (i) => SpriteComponent.square(32, 'test.png')) + .forEach((sprite) { + sprite.x = r.nextInt(size.width.toInt()).toDouble(); + sprite.y = r.nextInt(size.height.toInt()).toDouble(); + add(sprite); + }); + } +} diff --git a/doc/examples/sprites/pubspec.yaml b/doc/examples/sprites/pubspec.yaml new file mode 100644 index 000000000..757cce955 --- /dev/null +++ b/doc/examples/sprites/pubspec.yaml @@ -0,0 +1,21 @@ +name: sprites +description: Flame sample game showcasing rendering 500 sprites + +version: 1.0.0+1 + +environment: + sdk: ">=2.1.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + flame: + path: ../../../ + +dev_dependencies: + flutter_test: + sdk: flutter + +flutter: + assets: + - assets/images/test.png