- Two-timer architecture: game timer + 60fps render timer for smooth interpolation - Snake body: StreamGeometry path with teal gradient, rounded joins - Directional head with white eyes and dark pupils - Food: pulsating glow, highlight, green leaf animation - Modern dark theme (#0D1117), glassmorphism HUD - Speed indicator bar, score +N popup - High score persistence to JSON - All keyboard shortcuts: Arrows, WASD, Space/P pause, Enter start, R restart, Esc quit - Window resizable, 640x540 default New files: AnimationHelper.cs, HighScoreManager.cs, SnakeRenderer.cs
23 lines
437 B
C#
23 lines
437 B
C#
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
|
|
namespace Snake.Avalonia;
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
|
|
// Global Escape handler to close the window
|
|
KeyDown += (_, e) =>
|
|
{
|
|
if (e.Key == Key.Escape)
|
|
{
|
|
Close();
|
|
e.Handled = true;
|
|
}
|
|
};
|
|
}
|
|
}
|