v0.6.0
This release introduces significant updates to the windowkill project, including new inter-window communication features, enhanced game mechanics, and improvements to the codebase's structure and functionality. Below is a categorized summary of the most important changes:
Inter-Window Communication and Synchronization
- Introduced a global sync server using a shared broadcast channel (
tokio) to synchronize messages between windows, with commands for starting the server, sending messages, and subscribing windows to sync events (src-tauri/src/lib.rs). [1] [2]
Game Mechanics Enhancements
- Updated the
README.mdto reflect progress on game features, including successful spawning of enemies and bosses in multiple windows, transferring projectiles, and adding interactivity between windows (README.md). [1] [2] - Refactored the
Playerclass into a more genericEntityclass to represent various game elements (e.g., players, projectiles, enemies), and introduced a newNGonclass for boss entities with polygonal shapes (src/js/classes.js). [1] [2]
Frontend and UI Improvements
- Added a new
canvas.htmlfile to support rendering a canvas for the game, with a script for managing multi-window functionality (src/html/canvas.html). - Enhanced the game background to dynamically adjust its transparency based on local storage settings (
src/html/achievements.html).
Utility and Codebase Improvements
- Added utility functions for converting between canvas and monitor coordinates and generating random hex colors for better visual effects (
src/js/functions.js). - Refactored existing functions and replaced hardcoded values with configurable options, improving scalability and readability (
src/js/functions.js).