Compare commits

..

No commits in common. "15bc1794103142775750921ddd9015abea465502" and "dee0eaa9f9a2a633f2c5969f0ac43ce9a254134f" have entirely different histories.

4 changed files with 46 additions and 28 deletions

View File

@ -19,8 +19,8 @@ SELECTION_GRAY = (128, 128, 128, 80)
SELECTION_BORDER = (80, 80, 90) SELECTION_BORDER = (80, 80, 90)
# Grid settings # Grid settings
GRID_WIDTH = 100 GRID_WIDTH = 30
GRID_HEIGHT = 100 GRID_HEIGHT = 25
CELL_SIZE = 20 CELL_SIZE = 20
RENDER_BUFFER = 50 RENDER_BUFFER = 50

View File

@ -5,7 +5,6 @@ import pygame
import math import math
from config.constants import * from config.constants import *
from world.base.brain import CellBrain from world.base.brain import CellBrain
from world.objects import DefaultCell
class Renderer: class Renderer:
@ -99,9 +98,6 @@ class Renderer:
return return
for obj in world.get_objects(): for obj in world.get_objects():
if not isinstance(obj, DefaultCell):
continue
obj_x, obj_y = obj.position.get_position() obj_x, obj_y = obj.position.get_position()
radius = obj.interaction_radius radius = obj.interaction_radius

View File

@ -350,7 +350,7 @@ class DefaultCell(BaseEntity):
movement_cost = abs(output_data["angular_acceleration"]) + abs(output_data["linear_acceleration"]) movement_cost = abs(output_data["angular_acceleration"]) + abs(output_data["linear_acceleration"])
self.energy -= (self.behavioral_model.neural_network.network_cost * 0.1) + 1 + (0.3 * movement_cost) self.energy -= (self.behavioral_model.neural_network.network_cost * 0.03) + 1 + (0.3 * movement_cost)
return self return self

View File

@ -5,18 +5,51 @@ from config.constants import MAX_VELOCITY, MAX_ROTATIONAL_VELOCITY
class Physics: class Physics:
""" """
Simulates basic 2D physics for an object, including linear and rotational motion Physics
with drag effects.
""" """
def __init__(self, drag_coefficient: float, rotational_drag: float): def __init__(self, drag_coefficient: float, rotational_drag: float):
"""
Initialize the Physics object.
Args:
drag_coefficient (float): Linear drag coefficient.
rotational_drag (float): Rotational drag coefficient.
"""
self.drag_coefficient: float = drag_coefficient self.drag_coefficient: float = drag_coefficient
self.rotational_drag: float = rotational_drag self.rotational_drag: float = rotational_drag
@ -28,17 +61,6 @@ class Physics:
def move(self, linear_acceleration: float, angular_acceleration: int, rotational_position): def move(self, linear_acceleration: float, angular_acceleration: int, rotational_position):
"""
Update the object's velocity and acceleration based on input forces and drag.
Args:
linear_acceleration (float): The applied linear acceleration.
angular_acceleration (int): The applied angular acceleration.
rotational_position: The current rotational position in degrees.
Returns:
tuple: Updated (velocity, acceleration, rotational_velocity, angular_acceleration).
"""
# Apply drag force # Apply drag force
drag_coefficient = self.drag_coefficient drag_coefficient = self.drag_coefficient
drag_x = -self.velocity[0] * drag_coefficient drag_x = -self.velocity[0] * drag_coefficient