Después de aprender c.
Hoy en día, los grandes juegos y el gran software no son adecuados para la programación C en DOS, por lo que mucha gente piensa que la programación en DOS está desactualizada. De hecho, la programación de DOS es una buena manera de comprender el hardware y el sistema subyacentes. DOS es el pasado de WINDOWS. Mirar los problemas desde una perspectiva del desarrollo es comprender el pasado de una cosa.
Hay muchos tipos de juegos, incluidos los de bloques, de disparos, de rol y de lucha. A continuación se muestra un ejemplo sencillo para ilustrar los elementos básicos de la programación de juegos de DOS.
¿Aún recuerdas el clásico juego "Tank War" de las consolas rojas y blancas donde manejas un tanque para proteger un castillo y destruir enemigos? La implementación de este juego (y la mayoría de los juegos del mundo) se divide en tres partes: mostrar gráficos en la pantalla (mostrando tus tanques, tanques enemigos, paredes, etc.), aceptar comandos de teclado del jugador (el controlador de la consola de juegos) , Haz juicios lógicos basados en las reglas del juego (si golpeas al enemigo, se acabó, de lo contrario se acabó). Por supuesto, no espero que seas un principiante para programar una batalla de tanques completa, pero a continuación necesitamos saber cómo hacer estas tres cosas, y luego creo que podrás hacer fácilmente un prototipo del juego;
Sin embargo, se debe enfatizar que debe dominar el uso de punteros (esto debería ser muy importante al aprender el lenguaje C) para comprender cómo llamar a interrupciones (es posible que no se tome esto en serio cuando aprenda, por favor invente para ello), de lo contrario, te resultará difícil ponerte al día con el juego;
1. En DOS, el hardware como la pantalla puede ser operado directamente por aplicaciones y, en aras de la velocidad, muchos juegos utilizan la operación directa del hardware;
La interrupción 10H de DOS se utiliza para hablar con el monitor. . En cuanto a por qué es 10H en lugar de 9H u 11H, esa es una regla de DOS y no tiene sentido. Para todo el uso de la interrupción 10H, consulte la Referencia 1. Ahora que sabemos cómo hablar con el monitor, configuremos el modo de pantalla en un modo de gráficos de resolución 320*200 y 256 colores usando la siguiente declaración:
_ AH = 0
<; p>_ AL = 0x 13;gen interrupción(0x 10);
El significado de estas declaraciones es informar al hardware a través de la interrupción 10H y luego mostrar los gráficos en la forma de 320*200*256, como preparación de hardware;
El color de cada fila de píxeles en la pantalla se almacena en la memoria uno por uno a partir de a0000000H. Solo modificando el contenido aquí se puede. modificar el contenido de la pantalla. Luego mostremos un punto blanco (160, 100) en el centro de la pantalla:
Unsigned char far*pen=(unsigned char far *)0xa 0000000 l;
* (pen 160 100 * 320)= 15;
Está bien, solo muestra un punto, la vida dos, la vida dos, la vida tres, todas las cosas tres. Puede dibujar gráficos arbitrarios a través de varias declaraciones similares (por supuesto, esto es solo un principio. De hecho, después de aprender el formato BMP, puede llamar al que está dibujado en el software de dibujo, que es más conveniente).
2. ¿Cómo aceptar los comandos del teclado del jugador? Supongo que dominas scanf() y getch(). Sin embargo, aquí se usa bioskey(1). La función de llamar a esta función con 1 como parámetro es devolver su código ASCII si se presiona una tecla (en realidad es un código de escaneo, por lo que no entraré en detalles sobre este aspecto). Si encuentra dificultades, consulte la referencia 3). Si no se presiona ningún botón, se devolverá 0 directamente.
Los usos específicos generalmente se colocan al comienzo del ciclo:
int x=160, y = 100
char
do
;{
c = clave BIOS(1);
if(c = = ' w ')y ;
if(c = = ' s ') y-;
if(c == ' a ')x-
if(c == ' d ')x ;
show(x, y);
} while(c!= ' q ');
En el programa anterior, x e y son las coordenadas de tu personaje (como un tanque), show () es la función de visualización (no hay contenido específico aquí, debe saber cómo mostrarlo según la descripción anterior). Este segmento del programa implementa el movimiento del personaje y lo muestra de acuerdo con las pulsaciones de teclas (wsad representa adelante, atrás, izquierda y derecha respectivamente);
3. Decide el resultado de acuerdo con las reglas del juego. De hecho, se trata de agregar una oración de juicio al final del cuerpo circular que se muestra arriba para juzgar si las coordenadas del tanque y las coordenadas de la bala coinciden, para juzgar si impacta o no. Esta parte no involucra funciones ni hardware especiales, por lo que no entraré en detalles;
Con estas tres partes y más experimentos, deberías poder crear un juego simple. Cuando estaba en la escuela secundaria, aprendí C por mi cuenta. El primer juego que jugué fue Tank Battle, que fue muy beneficioso para mis intereses de aprendizaje posteriores. Espero que tú también puedas obtener felicidad de ello.
Materiales de referencia:
1.Programación de tarjetas gráficas EGA/VGA/1077852.html
3.3 Introducción. Programación de juegos para DOS, ¿quién puede escribir mejor que yo/article_view.asp? identificación=27