Moved the weapon and damage flash to the rasterizer.
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -6,7 +6,6 @@ import 'package:wolf_3d_data_types/wolf_3d_data_types.dart';
|
||||
import 'package:wolf_3d_engine/wolf_3d_engine.dart';
|
||||
import 'package:wolf_3d_input/wolf_3d_input.dart';
|
||||
import 'package:wolf_3d_renderer/hud.dart';
|
||||
import 'package:wolf_3d_renderer/weapon_painter.dart';
|
||||
|
||||
class WolfRenderer extends StatefulWidget {
|
||||
const WolfRenderer(
|
||||
@@ -125,57 +124,9 @@ class _WolfRendererState extends State<WolfRenderer>
|
||||
return Center(
|
||||
child: AspectRatio(
|
||||
aspectRatio: 16 / 10,
|
||||
child: Stack(
|
||||
children: [
|
||||
// --- 3D WORLD (PIXEL BUFFER) ---
|
||||
CustomPaint(
|
||||
size: Size(
|
||||
constraints.maxWidth,
|
||||
constraints.maxHeight,
|
||||
),
|
||||
painter: BufferPainter(_renderedFrame),
|
||||
),
|
||||
|
||||
// --- FIRST PERSON WEAPON ---
|
||||
Positioned(
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
child: Center(
|
||||
child: Transform.translate(
|
||||
offset: Offset(
|
||||
0,
|
||||
engine.player.weaponAnimOffset,
|
||||
),
|
||||
child: SizedBox(
|
||||
width: 500,
|
||||
height: 500,
|
||||
child: CustomPaint(
|
||||
painter: WeaponPainter(
|
||||
sprite:
|
||||
widget.data.sprites[engine
|
||||
.player
|
||||
.currentWeapon
|
||||
.getCurrentSpriteIndex(
|
||||
widget.data.sprites.length,
|
||||
)],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// --- DAMAGE FLASH ---
|
||||
if (engine.damageFlashOpacity > 0)
|
||||
Positioned.fill(
|
||||
child: Container(
|
||||
color: Colors.red.withValues(
|
||||
alpha: engine.damageFlashOpacity,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
child: CustomPaint(
|
||||
size: Size(constraints.maxWidth, constraints.maxHeight),
|
||||
painter: BufferPainter(_renderedFrame),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -190,8 +141,6 @@ class _WolfRendererState extends State<WolfRenderer>
|
||||
}
|
||||
}
|
||||
|
||||
// --- DEAD SIMPLE PAINTER ---
|
||||
// It literally just stretches the 320x200 image to fill the screen
|
||||
class BufferPainter extends CustomPainter {
|
||||
final ui.Image? frame;
|
||||
|
||||
@@ -201,7 +150,6 @@ class BufferPainter extends CustomPainter {
|
||||
void paint(Canvas canvas, Size size) {
|
||||
if (frame == null) return;
|
||||
|
||||
// FilterQuality.none guarantees the classic, chunky, un-blurred pixels!
|
||||
final Paint paint = Paint()..filterQuality = FilterQuality.none;
|
||||
|
||||
final Rect srcRect = Rect.fromLTWH(
|
||||
|
||||
Reference in New Issue
Block a user