mirror of
https://github.com/BreizhHardware/bloubloulespoissons.git
synced 2026-01-19 00:57:26 +01:00
- Déplacement des fichiers `env.cpp`, `env.h`, `display.cpp`, `display.h`, `event.h` vers le répertoire `Utility` - Ajout des nouvelles fonctions `handleQuitThread`, `handleQuit`, `cleanup` dans `close.cpp` - Mise à jour de `CMakeLists.txt` pour inclure les nouveaux chemins des fichiers - Mise à jour de `main.cpp` pour inclure les nouveaux chemins des fichiers - Ajout de la gestion des threads pour les poissons, les joueurs et le requin - Ajout de la gestion des événements de menu et de la musique de fond
40 lines
1.7 KiB
C++
40 lines
1.7 KiB
C++
//
|
|
// Created by BreizhHardware on 08/12/2024.
|
|
//
|
|
|
|
#include "display.h"
|
|
|
|
double calculateDistance(int x1, int y1, int x2, int y2) {
|
|
return std::sqrt(std::pow(x2 - x1, 2) + std::pow(y2 - y1, 2));
|
|
}
|
|
|
|
void displayNearbyPlayers(SDL_Renderer* renderer, TTF_Font* font, Player& currentPlayer, std::vector<Player>& players, double threshold) {
|
|
int currentX = currentPlayer.getUnifiedX();
|
|
int currentY = currentPlayer.getUnifiedY();
|
|
int offsetY = 90;
|
|
|
|
for (auto& player : players) {
|
|
if (&player == ¤tPlayer) continue; // Skip the current player
|
|
|
|
int playerX = player.getUnifiedX();
|
|
int playerY = player.getUnifiedY();
|
|
double distance = calculateDistance(currentX, currentY, playerX, playerY);
|
|
if (distance <= threshold) {
|
|
std::string nearbyPlayerText = "Nearby Player: (" + std::to_string(playerX) + ", " + std::to_string(playerY) + ")";
|
|
SDL_Color textColor = {0, 255, 0};
|
|
SDL_Surface* textSurface = TTF_RenderText_Solid(font, nearbyPlayerText.c_str(), textColor);
|
|
SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface);
|
|
SDL_Rect textRect = {10, offsetY, textSurface->w, textSurface->h};
|
|
SDL_RenderCopy(renderer, textTexture, nullptr, &textRect);
|
|
SDL_FreeSurface(textSurface);
|
|
SDL_DestroyTexture(textTexture);
|
|
|
|
// Affiche la 1ère image de playerV2-full.png
|
|
SDL_Rect playerRect = {69, 73, 112, 117};
|
|
SDL_Rect playerPosForRender = {playerX, playerY, 112, 117};
|
|
SDL_RenderCopy(renderer, player.getTexture(), &playerRect, &playerPosForRender);
|
|
|
|
offsetY += 20;
|
|
}
|
|
}
|
|
} |