Merge remote-tracking branch 'origin/master' into test_push

This commit is contained in:
Thomas 2021-05-09 14:46:01 +02:00
commit d703f3403d
2 changed files with 52 additions and 20 deletions

View file

@ -112,14 +112,18 @@ void f_projectile(void const * argument);
/* Private user code ---------------------------------------------------------*/ /* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN 0 */
const uint16_t joueur_width = 20;
const uint16_t joueur_height = 20;
const uint16_t monstre_width = 20;
const uint16_t monstre_height = 20;
struct Missile struct Missile
{ {
uint16_t x; uint16_t x;
uint16_t y; uint16_t y;
uint8_t dx; int8_t dx;
uint8_t dy; int8_t dy;
uint8_t equipe; uint8_t equipe;
uint32_t color; uint32_t color;
uint8_t damage; uint8_t damage;
@ -129,12 +133,12 @@ struct Missile
struct Joueur struct Joueur
{ {
// uint32_t et pas 16 car fonction d'affichage bitmap (j'en sais pas plus) // uint32_t et pas 16 car fonction d'affichage bitmap (j'en sais pas plus)
uint32_t x; uint32_t x; // Position de l'angle superieur gauche
uint32_t y; uint32_t y; // Position de l'angle superieur gauche
uint8_t dx; int8_t dx; // Vitesse du joueur
uint8_t dy; int8_t dy; // Vitesse du joueur
uint8_t health; uint8_t health; // Vie du joueur
struct Missile missile; struct Missile missile; // Missile lancé par le joueur
}; };
struct Monster struct Monster
@ -1316,6 +1320,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
/* NOTE: This function Should not be modified, when the callback is needed, /* NOTE: This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/ */
static int envoie_score( int score){
socket
socket = udp_new();
return 0;
} }
/* USER CODE END 4 */ /* USER CODE END 4 */
@ -1379,8 +1387,6 @@ void f_Joueur_1(void const * argument)
/* USER CODE BEGIN f_Joueur_1 */ /* USER CODE BEGIN f_Joueur_1 */
TickType_t xLastWakeTime; TickType_t xLastWakeTime;
const TickType_t xPeriodeTache = 10; const TickType_t xPeriodeTache = 10;
uint16_t Width = 20;
uint16_t Height = 20;
uint32_t joystick_h, joystick_v; uint32_t joystick_h, joystick_v;
uint8_t stop = 1; uint8_t stop = 1;
@ -1426,15 +1432,15 @@ void f_Joueur_1(void const * argument)
while (HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK); while (HAL_ADC_PollForConversion(&hadc1, 100) != HAL_OK);
joystick_v = HAL_ADC_GetValue(&hadc1); joystick_v = HAL_ADC_GetValue(&hadc1);
if ((joueur.y < LCD_WIDTH- Width - joueur.dy)&&(joystick_h < 1900)) joueur.y += joueur.dy; if ((joueur.y < LCD_WIDTH- joueur_width - joueur.dy)&&(joystick_h < 1900)) joueur.y += joueur.dy;
if ((joueur.y > joueur.dy)&&(joystick_h > 2100)) joueur.y -= joueur.dy; if ((joueur.y > joueur.dy)&&(joystick_h > 2100)) joueur.y -= joueur.dy;
if ((joueur.x < LCD_HEIGHT - Height - joueur.dx)&&(joystick_v < 1900)) joueur.x += joueur.dx; if ((joueur.x < LCD_HEIGHT - joueur_height - joueur.dx)&&(joystick_v < 1900)) joueur.x += joueur.dx;
if ((joueur.x > joueur.dx)&&(joystick_v > 2100)) joueur.x -= joueur.dx; if ((joueur.x > joueur.dx)&&(joystick_v > 2100)) joueur.x -= joueur.dx;
BSP_LCD_SetTextColor(LCD_COLOR_BLUE); BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
BSP_LCD_FillRect(joueur.x, joueur.y, Width, Height); BSP_LCD_FillRect(joueur.x, joueur.y, joueur_width, joueur_height);
if (xQueueReceive(Queue_JHandle, &missile, 0) == pdPASS) if (xQueueReceive(Queue_JHandle, &missile, 0) == pdPASS)
joueur.health = joueur.health - missile.damage; joueur.health = joueur.health - missile.damage;
@ -1513,11 +1519,13 @@ void f_projectile(void const * argument)
{ {
/* USER CODE BEGIN f_projectile */ /* USER CODE BEGIN f_projectile */
TickType_t xLastWakeTime; TickType_t xLastWakeTime;
const TickType_t xPeriodeTache = 100000; const TickType_t xPeriodeTache = 5000;
const int TAILLE_LISTE_MISSILE = 25;
/* Infinite loop */ /* Infinite loop */
struct Missile liste_missile[20]; struct Missile liste_missile[TAILLE_LISTE_MISSILE];
struct Missile missile; struct Missile missile = {70, 70, 1, 0, 0, LCD_COLOR_WHITE, 1,1};
uint8_t indice = 0; uint8_t indice = 1;
liste_missile[0] = missile;
// Paramètre de l'écran pour la reprouductibilité // Paramètre de l'écran pour la reprouductibilité
@ -1526,6 +1534,30 @@ void f_projectile(void const * argument)
for (;;) for (;;)
{ {
for(int idx_missile = 0; idx_missile < TAILLE_LISTE_MISSILE; idx_missile++){
if(liste_missile[idx_missile].valide){
new_x = liste_missile[idx_missile].x + liste_missile[idx_missile].dx;
new_y = liste_missile[idx_missile].y + liste_missile[idx_missile].dy;
if ((new_x<0)|(new_x>LCD_WIDTH)|(new_y<0)|(new_y>LCD_HEIGHT))
liste_missile[idx_missile].valide = 0;
//TODO e
if (liste_missile[idx_missile].equipe == 0)&&(1){//TODO condition de choc avec le joueur
xQueueSend(Queue_JHandle, 1, 0);
}
if (liste_missile[idx_missile].equipe == 1){
for (int idx_mechant=0)
}
}
}
/*
//xQueueReceive(Queue_NHandle, &missile, 0);
//liste_missile[indice++] = missile;
if (xQueueReceive(Queue_NHandle, &missile, 0) == pdPASS) if (xQueueReceive(Queue_NHandle, &missile, 0) == pdPASS)
{ {
@ -1592,10 +1624,11 @@ void f_projectile(void const * argument)
} }
} }
*/
vTaskDelayUntil(&xLastWakeTime, xPeriodeTache); vTaskDelayUntil(&xLastWakeTime, xPeriodeTache);
} }
/* USER CODE END f_projectile */ /* USER CODE END f_projectile */
} }

View file

@ -15,5 +15,4 @@ Pour indiquer le joueur, on utilise 1 et pour les méchants on utilise 0.
### Game_master ### Game_master
Si le game master reçoit un message via FHandle, une des deux entités est morte. Si la variable vaut 0, les méchants sont mort. Si elle vaut 1, le joueur est mort. Si le game master reçoit un message via FHandle, une des deux entités est morte. Si la variable vaut 0, les méchants sont mort. Si elle vaut 1, le joueur est mort.