Added Base Project

This commit is contained in:
Müller Wayan
2025-02-23 14:29:32 +01:00
parent cda7948be9
commit a6130d4ff0
364 changed files with 12117 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
using Firebird2D.SceneSystem;
using SFML.Graphics;
using SFML.System;
using SFML.Window;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Firebird2D.Core
{
public class MainWindow
{
private RenderWindow renderWindow;
private Clock clock = new Clock();
private List<uint> joyStickMovement = new List<uint>();
public Vector2u mainWindowSize { get; private set; }
internal I_Scene? ActiveSecene { set; get; }
public MainWindow(VideoMode resolution, string GameName, Styles style = Styles.Default)
{
renderWindow = new RenderWindow(resolution, GameName, style);
renderWindow.Closed += (sender, e) => renderWindow.Close();
renderWindow.Resized += RenderWindow_Resized;
mainWindowSize = renderWindow.Size;
renderWindow.KeyPressed += RenderWindow_KeyPressed;
renderWindow.JoystickButtonPressed += RenderWindow_JoystickButtonPressed;
renderWindow.MouseButtonPressed += RenderWindow_MouseButtonPressed;
renderWindow.MouseMoved += RenderWindow_MouseMoved;
renderWindow.JoystickMoved += RenderWindow_JoystickMoved;
}
private void RenderWindow_JoystickMoved(object? sender, JoystickMoveEventArgs e)
{
if(!joyStickMovement.Contains(e.JoystickId)) joyStickMovement.Add(e.JoystickId);
}
private void RenderWindow_MouseMoved(object? sender, MouseMoveEventArgs e)
{
Vector2i mousposition = new Vector2i(e.X, e.Y);
InputMapper.HandleMouseMovement(mousposition);
}
private void RenderWindow_MouseButtonPressed(object? sender, MouseButtonEventArgs e)
{
InputMapper.HandleMouseInput(e.Button);
}
private void RenderWindow_JoystickButtonPressed(object? sender, JoystickButtonEventArgs e)
{
InputMapper.HandleJoystickButtonInput(e.JoystickId, e.Button);
}
private void RenderWindow_KeyPressed(object? sender, KeyEventArgs e)
{
InputMapper.HandleKeyboardInput(e.Code);
}
private void RenderWindow_Resized(object? sender, SizeEventArgs e)
{
//throw new NotImplementedException();
}
public void Gameloop()
{
while (renderWindow.IsOpen)
{
int delteMiliseconds = clock.Restart().AsMilliseconds();
renderWindow.DispatchEvents();
renderWindow.Clear();
if (ActiveSecene != null)
{
foreach (uint joystickId in joyStickMovement)
InputMapper.HandleJoytickMove(joystickId
,Joystick.GetAxisPosition(joystickId,Joystick.Axis.X)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.Y)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.Z)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.R)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.U)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.V)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.PovX)
, Joystick.GetAxisPosition(joystickId, Joystick.Axis.PovY));
ActiveSecene.TickScene(delteMiliseconds);
ActiveSecene.RenderScene(renderWindow);
}
renderWindow.Display();
}
}
}
}