Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctype.h>//toupper, tolower
- #include <conio.h>//kbhit: keyboard hit, getch: get character
- #include <time.h> //time
- using namespace std;
- using namespace System;//Console::SetCursorPosition(x,y);
- #define ARRIBA 72
- #define IZQUIERDA 75
- #define ABAJO 80
- #define DERECHA 77
- typedef struct personaje {
- short x;
- short y;
- short pasos;
- char imagen;
- personaje(short _x = 10, short _y = 10, short _pasos = 0, char _imagen = '*') { //constructor
- x = _x;
- y = _y;
- pasos = _pasos;
- imagen = _imagen;
- }
- void animar(char direccion) {
- borrar();
- mover(direccion);
- dibujar();
- }
- void borrar() {
- Console::SetCursorPosition(x, y);
- cout << " ";
- }
- void mover(char direccion) {
- switch (toupper(direccion)) {
- case ARRIBA : y--; pasos++; break;
- case ABAJO : y++; pasos++; break;
- case IZQUIERDA: x--; pasos++; break;
- case DERECHA : x++; pasos++; break;
- }
- }
- void dibujar() {
- Console::SetCursorPosition(x, y);
- cout << imagen;
- }
- };
- typedef struct enemigo {
- short x;
- short y;
- char imagen;
- short dx;
- short dy;
- short retraso;
- enemigo(short _x = 10, short _y = 10, char _imagen = '*') { //constructor
- x = _x;
- y = _y;
- imagen = _imagen;
- dx = 1;
- dy = 1;
- retraso = 0;
- }
- void animar() {
- if (retraso == 3000) {
- borrar();
- mover();
- dibujar();
- retraso = 0;
- }
- retraso++;
- }
- void borrar() {
- Console::SetCursorPosition(x, y);
- cout << " ";
- }
- void mover() {
- if (x == 0 || x == 40) dx *= -1;
- if (y == 0 || y == 20) dy *= -1;
- x += dx;
- y += dy;
- }
- void dibujar() {
- Console::SetCursorPosition(x, y);
- cout << imagen;
- }
- };
- typedef float decimal;
- void jugar() {
- personaje p;
- short n;
- cout << "Ingrese la cantidad de enemigos: ";
- cin >> n;
- enemigo* pEnemigos = new enemigo[n];
- for (short i = 0; i < n; i++) {
- pEnemigos[i].x = Random::Random().Next(10, 40);
- pEnemigos[i].y = Random::Random().Next(10, 20);
- pEnemigos[i].imagen = Random::Random().Next(65,92);
- _sleep(30);
- }
- bool continuar = true;
- while (continuar) {
- if (kbhit()) {
- char direccion = getch();
- p.animar(direccion);
- }
- if (p.pasos == 50)
- continuar = false;
- for (short i = 0; i < n; i++) {
- pEnemigos[i].animar();
- }
- }
- delete[] pEnemigos;
- }
- int main() {
- Console::CursorVisible = false;
- jugar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement