Added difficulty screen
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:wolf_dart/classes/entity.dart';
|
||||
import 'package:wolf_dart/classes/linear_coordinates.dart';
|
||||
import 'package:wolf_dart/classes/matrix.dart';
|
||||
import 'package:wolf_dart/classes/sprite.dart';
|
||||
import 'package:wolf_dart/features/renderer/color_palette.dart';
|
||||
|
||||
class RaycasterPainter extends CustomPainter {
|
||||
@@ -14,7 +14,7 @@ class RaycasterPainter extends CustomPainter {
|
||||
final double fov;
|
||||
final Map<String, double> doorOffsets;
|
||||
final List<Matrix<int>> sprites;
|
||||
final List<Sprite> entities;
|
||||
final List<Entity> entities;
|
||||
|
||||
RaycasterPainter({
|
||||
required this.map,
|
||||
@@ -164,7 +164,7 @@ class RaycasterPainter extends CustomPainter {
|
||||
// --- 2. DRAW SPRITES ---
|
||||
|
||||
// Sort sprites from furthest to closest (Painter's Algorithm)
|
||||
List<Sprite> activeSprites = List.from(entities);
|
||||
List<Entity> activeSprites = List.from(entities);
|
||||
activeSprites.sort((a, b) {
|
||||
double distA =
|
||||
math.pow(player.x - a.x, 2) + math.pow(player.y - a.y, 2).toDouble();
|
||||
@@ -173,10 +173,10 @@ class RaycasterPainter extends CustomPainter {
|
||||
return distB.compareTo(distA);
|
||||
});
|
||||
|
||||
for (Sprite sprite in activeSprites) {
|
||||
for (Entity entity in activeSprites) {
|
||||
// Translate sprite position to relative to camera
|
||||
double spriteX = sprite.x - player.x;
|
||||
double spriteY = sprite.y - player.y;
|
||||
double spriteX = entity.x - player.x;
|
||||
double spriteY = entity.y - player.y;
|
||||
|
||||
// Inverse camera matrix (Transform to screen space)
|
||||
double invDet = 1.0 / (planeX * dirY - dirX * planeY);
|
||||
@@ -216,7 +216,7 @@ class RaycasterPainter extends CustomPainter {
|
||||
double stepY = spriteHeight / 64.0;
|
||||
|
||||
// Safeguard against bad sprite indices
|
||||
int safeIndex = sprite.spriteIndex.clamp(0, sprites.length - 1);
|
||||
int safeIndex = entity.spriteIndex.clamp(0, sprites.length - 1);
|
||||
Matrix<int> spritePixels = sprites[safeIndex];
|
||||
|
||||
for (int ty = 0; ty < 64; ty++) {
|
||||
|
||||
Reference in New Issue
Block a user