Aplicacions amb Flutter, Dart i Flame

Tutorial Flutter Flame Projectes   Recursos CITCEA
Exemples Dart Dades pràctiques     Inici

Vectors

Els vectors són elements amb diverses components però que són tractats com a vectors des d'un punt de vista matemàtic.

Exemple de vector de dues components:

...
  size = Vector2(game.width, game.height);
...

Podem obtenir fàcilment el seu mòdul:

...
  Vector2 vect = Vector2(4, 3);
  print(vect.normalize());  // Escriurà 5.0
...

En alguns casos en els quals un mètode ja preveu fer servir vectors, podrem fer-los servir directament. Però en molts altres cal instal·lar la biblioteca vector_math i importar-la. Per un costat, cal anar al fitxer pubspec.yaml per dir-li que volem fer servir vector_math. Cal posar-ho a dependencies, indicant quina és la versió que volem. En la major part dels casos és suficient amb posar any, per indicar que ens serveix qualsevol. Un cop afegit, cal picar al botó per baixar el paquet (baixar). Per un altre costat, cal importar el paquet vector_math.dart; ja que no ho fa de manera automàtica.

dependencies:
  flutter:
    sdk: flutter
  flame: ^1.28.1
  flutter_animate: ^4.5.2
  google_fonts: ^8.0.2
  vector_math: any

...
import 'package:vector_math/vector_math.dart';

Els vectors tenen definides operacions pròpies. Per exemple, la suma o la multiplicació per un nombre enter:

...
  position += velocity * dt;
...

Podem normalitzar el vector, és a dir obtenir un vector amb modul unitari però de la mateixa direcció.

...
  Vector2 vect = Vector2(4, 3);
  print(vect.normalized());  // Escriurà [0.8,0.6] (amb més decimals)
...

I podem escalar el vector, o sigui obtenir-ne un de la mateixa direcció però multiplicant el mòdul pel valor indicat.

...
  Vector2 vect = Vector2(4, 3);
  print(vect.normalized()..scale(10.0));  // Escriurà [8.0,6.0]
...

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.