-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNave.h
executable file
·116 lines (100 loc) · 4.06 KB
/
Nave.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#ifndef __Principal_H__
#define __Principal_H__
#include "Punto.h"
#include "Lista.h"
#include "Pantalla.h"
/**
\file Nave.h
\brief Permite al usuario tener las facilidades de manejar un personaje.
Este TDA se usa con un punto posición y la altura y anchura de la nave.
*/
/**
\brief TDA Nave
*/
typedef struct NaveRep * Nave;
/**
\brief Crea una Nave a partir de su Altura y Anchura. Su posición inicial será [Pantalla_Anchura()/2,Pantalla_Altura()/2].
\param AlturaPrincipal de la Nave.
\param AnchuraPrincipal de la Nave.
\return La Nave creada.
*/
Nave NaveCrear (double AlturaPrincipal, double AnchuraPrincipal);
/**
\brief Libera una Nave.
\param cuadrado La Nave a liberar.
*/
void NaveLibera(Nave cuadrado);
/**
\brief Devuelve el punto posición de la Nave p.
\param p La Nave de la cual queremos el punto.
\return El punto de la Nave p.
*/
Punto NavePos(Nave p);
/**
\brief Devuelve el Alto de la Nave p.
\param p La Nave de la cual queremos el Alto.
\return El Alto de la Nave p.
*/
double NaveAlto (Nave p);
/**
\brief Devuelve el Largo de la Nave p.
\param p La Nave de la cual queremos el Largo.
\return El Largo de la Nave p.
*/
double NaveLargo (Nave p);
/**
\brief Dibuja la Nave pasada por parámetro según la Imagen, también, pasada por parámetro. Se dibujará en la posición de la Nave.
\param i La Imagen con la que queremos dibuajar la Nave.
\param cuadrado La Nave a dibujar.
*/
void NaveDibujar(Imagen i, Nave cuadrado);
/**
\brief Mueve la Nave pasada por parámetro según una velocidad, también, pasada por parámetro.
\param p La Nave a mover.
\param velocidadCuadrado Velocidad de movimiento de la Nave.
*/
void NaveMovimiento(Nave p,double velocidadCuadrado);
/**
\brief Inserta elementos en la Lista p con dirección vectorial [Ratón,Posicion(Nave)]. Se construirá el vector unitario para así controlarlo posteriormente con la velocidad.
Se toma como parámetros el Largo y Alto del disparo para cuadrar el disparo. Además, únicamente se disparará si el puntero *mousePulsado está a cero, es decir, si el ratón no está pulsado.
Funciona como limitador para que solo puedas disparar con un click.
\param q La Nave con la que disparamos.
\param p La Lista a insertar las balas.
\param LargoDisparo Largo del Disparo.
\param AltoDisparo Alto del Disparo.
\param *mousePulsado Puntero al "trigger" del disparo.
*/
void NaveDisparar (Nave q, Lista p,double LargoDisparo,double AltoDisparo, int *mousePulsado);
/**
\brief Inserta elementos en la Lista p con dirreción vectorial [Ratón,Posicion(Nave)].En este caso, se insertan varios disparos en forma de cruz. Se construirá el vector unitario para así controlarlo posteriormente con la velocidad.
Se toma como parámetros el Largo y Alto del disparo para cuadrar el disparo. Además, únicamente se disparará si el puntero *mousePulsado está a cero, es decir, si el ratón no está pulsado.
Funciona como limitador para que solo puedas disparar con un click.
\param q La Nave con la que disparamos.
\param p La Lista a insertar las balas.
\param LargoDisparo Largo del Disparo.
\param AltoDisparo Alto del Disparo.
\param *mousePulsado Puntero al "trigger" del disparo.
\param *municion Decrementa el numero de munición en 1 si municion>=1.
*/
void NaveDispararExplosivo (Nave q, Lista p,double LargoDisparo,double AltoDisparo, int *mousePulsado,double *municion);
/**
\brief Convierte del código RGB al HSV.
\param r Coordenada r del código RGB.
\param g Coordenada g del código RGB.
\param b Coordenada b del código RGB.
\param h Vector h del código HSV.
\param s Vector s del código HSV.
\param v Vector v del código HSV.
*/
void RGBtoHSV( float r, float g, float b, float *h, float *s, float *v );
/**
\brief Convierte del código HSV al RGB.
\param r Coordenada r del código RGB.
\param g Coordenada g del código RGB.
\param b Coordenada b del código RGB.
\param h Vector h del código HSV.
\param s Vector s del código HSV.
\param v Vector v del código HSV.
*/
void HSVtoRGB( float *r, float *g, float *b, float h, float s, float v );
#endif