Advertisement
Guest User

Jueguito

a guest
Oct 21st, 2019
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctype.h>//toupper, tolower
  3. #include <conio.h>//kbhit: keyboard hit, getch: get character
  4. #include <time.h> //time
  5. using namespace std;
  6. using namespace System;//Console::SetCursorPosition(x,y);
  7.  
  8. #define ARRIBA 72
  9. #define IZQUIERDA 75
  10. #define ABAJO 80
  11. #define DERECHA 77
  12.  
  13. typedef struct personaje {
  14. short x;
  15. short y;
  16. short pasos;
  17. char imagen;
  18. personaje(short _x = 10, short _y = 10, short _pasos = 0, char _imagen = '*') { //constructor
  19. x = _x;
  20. y = _y;
  21. pasos = _pasos;
  22. imagen = _imagen;
  23. }
  24. void animar(char direccion) {
  25. borrar();
  26. mover(direccion);
  27. dibujar();
  28. }
  29. void borrar() {
  30. Console::SetCursorPosition(x, y);
  31. cout << " ";
  32. }
  33. void mover(char direccion) {
  34. switch (toupper(direccion)) {
  35. case ARRIBA : y--; pasos++; break;
  36. case ABAJO : y++; pasos++; break;
  37. case IZQUIERDA: x--; pasos++; break;
  38. case DERECHA : x++; pasos++; break;
  39. }
  40. }
  41. void dibujar() {
  42. Console::SetCursorPosition(x, y);
  43. cout << imagen;
  44. }
  45. };
  46.  
  47. typedef struct enemigo {
  48. short x;
  49. short y;
  50. char imagen;
  51. short dx;
  52. short dy;
  53. short retraso;
  54. enemigo(short _x = 10, short _y = 10, char _imagen = '*') { //constructor
  55. x = _x;
  56. y = _y;
  57. imagen = _imagen;
  58. dx = 1;
  59. dy = 1;
  60. retraso = 0;
  61. }
  62. void animar() {
  63. if (retraso == 3000) {
  64. borrar();
  65. mover();
  66. dibujar();
  67. retraso = 0;
  68. }
  69. retraso++;
  70. }
  71. void borrar() {
  72. Console::SetCursorPosition(x, y);
  73. cout << " ";
  74. }
  75. void mover() {
  76. if (x == 0 || x == 40) dx *= -1;
  77. if (y == 0 || y == 20) dy *= -1;
  78. x += dx;
  79. y += dy;
  80. }
  81. void dibujar() {
  82. Console::SetCursorPosition(x, y);
  83. cout << imagen;
  84. }
  85. };
  86.  
  87. typedef float decimal;
  88.  
  89. void jugar() {
  90. personaje p;
  91. short n;
  92. cout << "Ingrese la cantidad de enemigos: ";
  93. cin >> n;
  94. enemigo* pEnemigos = new enemigo[n];
  95. for (short i = 0; i < n; i++) {
  96. pEnemigos[i].x = Random::Random().Next(10, 40);
  97. pEnemigos[i].y = Random::Random().Next(10, 20);
  98. pEnemigos[i].imagen = Random::Random().Next(65,92);
  99. _sleep(30);
  100. }
  101.  
  102. bool continuar = true;
  103. while (continuar) {
  104. if (kbhit()) {
  105. char direccion = getch();
  106. p.animar(direccion);
  107. }
  108. if (p.pasos == 50)
  109. continuar = false;
  110. for (short i = 0; i < n; i++) {
  111. pEnemigos[i].animar();
  112. }
  113. }
  114. delete[] pEnemigos;
  115. }
  116.  
  117. int main() {
  118. Console::CursorVisible = false;
  119. jugar();
  120. return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement