feat: improving the spaceship hole area

pull/108/head
Erick Zanardo 4 years ago
parent 90131d9724
commit 45fd7bc341

@ -49,7 +49,7 @@ class PinballGame extends Forge2DGame
unawaited(
addFromBlueprint(
Spaceship(
position: Vector2(-25, 32),
position: Vector2(-26.5, 28.5),
),
),
);

@ -5,6 +5,7 @@ import 'dart:math';
import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flutter/material.dart';
import 'package:pinball_components/gen/assets.gen.dart';
import 'package:pinball_components/pinball_components.dart' hide Assets;
@ -16,7 +17,7 @@ class Spaceship extends Forge2DBlueprint {
Spaceship({required this.position});
/// Total size of the spaceship.
static final size = Vector2(24, 18);
static final size = Vector2(25, 19);
/// The [position] where the elements will be created
final Vector2 position;
@ -32,8 +33,8 @@ class Spaceship extends Forge2DBlueprint {
SpaceshipSaucer()..initialPosition = position,
SpaceshipEntrance()..initialPosition = position,
AndroidHead()..initialPosition = position,
SpaceshipHole()..initialPosition = position - Vector2(4.8, 4.2),
SpaceshipHole()..initialPosition = position - Vector2(-7.2, 0.6),
SpaceshipHole()..initialPosition = position - Vector2(5.2, 4.8),
SpaceshipHole()..initialPosition = position - Vector2(-7.2, 0.8),
SpaceshipWall()..initialPosition = position,
]);
}
@ -180,16 +181,17 @@ class SpaceshipHole extends BodyComponent with InitialPosition, Layered {
@override
Body createBody() {
renderBody = false;
final circleShape = CircleShape()..radius = 1.5;
final shape = ArcShape(center: Vector2(-3.5, 2), arcRadius: 6, angle: 1);
final bodyDef = BodyDef()
..userData = this
..position = initialPosition
..angle = 5.2
..type = BodyType.static;
return world.createBody(bodyDef)
..createFixture(
FixtureDef(circleShape)..isSensor = true,
FixtureDef(shape)..isSensor = true,
);
}
}

Loading…
Cancel
Save