| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> C /C + + Programming >> Content
    Cómo hacer un juego RPG en C + +
    Cuando se juega un juego de rol o RPG, asumes el papel de un personaje imaginario y la experiencia de sus aventuras. Estos juegos pueden ser muy complejos e implican gran cantidad de gráficos . Los desarrolladores suelen trabajar varios meses en la codificación y prueba el juego. Sin embargo , puede crear un simple juego de RPG en C + + . Por otra parte, sólo tiene que entender los conceptos básicos de programación en C + + . Usted puede crear un simple juego de rol con una matriz de dos dimensiones como el mapa y unas cuantas clases para controlar a tu personaje, los personajes enemigos y el juego. Instrucciones
    1

    Abre tu editor favorito de C + + y empezar un proyecto nuevo. Incluya las bibliotecas " ctime " " iostream " y utilizando este código:

    # include # include
    2

    Crear una nueva clase que representa a su héroe y los monstruos en su " calabozo " mediante el uso de este código:
    clase

    CCreature {public : CCreature (): muiAttack ( 0 ) , muiDefense ( 0 ) , muiHitPoints ( 3 ) {for (unsigned uiIndex int = 0 ; uiIndex < 3 ; + + uiIndex ) { muiAttack = muiAttack + ( rand ()% 34 ) ; muiDefense = muiDefense + ( rand ()% 34 ) ; muiHitPoints = muiHitPoints + ( rand ()% 10 ) ;} } void Attack ( CCreature y qrDefender ) {//Generar un número entre 1 y 100unsigned int uiAttack1 = ( rand ()% 100 ) + 1 ; unsigned int uiDefense1 = ( rand ()% 100 ) + 1 ; unsigned int uiAttack2 = ( rand ()% 100 ) + 1 ; unsigned int uiDefense2 = ( rand ()% 100 ) + 1 ;//¿El golpe atacante ( héroe ) if ( uiAttack1 < muiAttack && uiDefense1 > qrDefender ? . muiDefense ) { - . qrDefender muiHitPoints ; std :: cout << " ! Hit Monster" << std :: endl ;} else { std :: cout << "Monster perder! " ; << std :: endl ;} //Comprobar si el monstruo golpeó su characterif ( uiAttack2 < && qrDefender.muiAttack uiDefense1 > muiDefense ) { - muiHitPoints ; std :: cout << " ; Hit Hero " << std :: endl ;} else { std :: cout <<" ! héroe perder " << std :: endl ;} std :: cout << , "Tus Hitpoints :" << muiHitPoints << std :: endl ; std :: cout << " Puntos de ataque del monstruo :" << qrDefender.muiHitPoints << std : : endl ;} bool IsDead () {return ( muiHitPoints == 0 ) ;} privada: muiAttack unsigned int ; muiDefense int sin firmar ; muiHitPoints int sin firmar ;} ;

    Esta clase inicializa los tres atributos : ataque, defensa y los puntos de golpe . A continuación, utiliza un algoritmo de ataque para determinar si el ataque fue un éxito, el daño de los restantes puntos de golpe y ataque .
    3

    Crear una nueva clase que representa el " calabozo " como una matriz bidimensional utilizando este código:
    clase

    CDungeon {public : CDungeon () {//Crear caaMaze mazechar vacío [ 10 ] [ 11 ] = {" ******* *** " , " ****** " , " ***** " , " ** " , " ****** " , " *** **** " , " **** " , " **** " , " ****** " , " ********** " } , porque (unsigned int uiRow = 0 ; uiRow < 10 ; + + uiRow ) {for (unsigned int uiCol = 0 ; uiCol < 10 ; + + uiCol ) { mcaaMaze [ uiRow ] [ uiCol ] = caaMaze [ uiRow ] [ uiCol ] ;} } } caracteres GetMazeSquare (unsigned int uiRow , unsigned int uiCol ) {return mcaaMaze [ uiRow ] [ uiCol ] ;} privada: mcaaMaze char [ 10 ] [ 10 ] ;} ;

    puede cambiar la forma en que su " calabozo " se parece al cambiar la posición de los caracteres "*"
    4

    Crear la clase que controla el juego-juego utilizando este código: .

    clase CRolePlayingGame {public : CRolePlayingGame () {//Initlialize la QTIME números aleatorios generatortime_t , el tiempo ( y QTIME ), srand ( (unsigned int) QTIME ) ;

    //Inicializar el calabozo para ser emptyfor (unsigned int uiRow = 0 ; uiRow < 10 ; + + uiRow ) {for (unsigned int uiCol = 0 ; uiCol < 10 ; + + uiCol ) { mqpaaCreatures [ uiRow ] [ uiCol ] = 0 ;} } < br >

    //Crear un herobool bFoundSpot = false; (! bFoundSpot ), mientras que { unsigned int uiRow = 1 + ( rand ()% 8 ) ; unsigned int uiCol = 1 + ( rand ()% 8 ) ; if ( QueryLocation ( uiRow , uiCol ) == "" ) { bFoundSpot = true; mqpaaCreatures [ uiRow ] [ uiCol ] = &mqHero; } } //Crear 10 monstersbFoundSpot = false; uiMonster unsigned int = 0 ; ! while ( bFoundSpot ) { sin firmar int uiRow = 1 + ( rand ()% 8 ) ; unsigned int uiCol = 1 + ( rand ()% 8 ) ; if ( QueryLocation ( uiRow , uiCol ) == "" ) { mqpaaCreatures [ uiRow ] [ uiCol ] = & ; mqaMonsters [ uiMonster ] ; + + uiMonster ; if ( uiMonster == 10 ) { bFoundSpot = true ;} } } } QueryLocation char ( uiRow unsigned int , unsigned int uiCol ) {for (unsigned int uIndex = 0 ; uIndex < 10 ; + + uIndex ) { if ( mqpaaCreatures [ uiRow ] [ uiCol ] == y ( mqaMonsters [ uIndex ])) {return (char ) ('0 '+ uIndex ) ;} } if ( mqpaaCreatures [ uiRow ] [ uiCol ] == y mqHero ) {return ' H' ; } else {return mqDungeon.GetMazeSquare ( uiRow , uiCol ) ;} } bool MoveHero ( kcDirection const char ) { unsigned int uiHeroRow ; unsigned int uiHeroCol ; LocateCreature ( uiHeroRow , uiHeroCol , y ; mqHero ) ; unsigned int uiNextRow = uiHeroRow ; unsigned int uiNextCol = uiHeroCol ; switch ( kcDirection ) {case ' w ' : case ' w ' : { - uiNextRow ; break; } case ' s ' : case ' s ' : { + + uiNextCol ; break; } case ' z' : case ' Z' : { + + uiNextRow ; break; } caso ' a': case ' a' : { - uiNextCol ; break; } default : {return false;} } caracteres cNextLoc = QueryLocation ( uiNextRow , uiNextCol ) ; if ( cNextLoc == "" ) { mqpaaCreatures [ uiNextRow ] [ uiNextCol ] = &mqHero; mqpaaCreatures [ uiHeroRow ] [ uiHeroCol ] = 0 ; return true; } else if ( cNextLoc > = '0 ' && cNextLoc < = '9' ) { mqHero.Attack ( mqaMonsters [( int) ( cNextLoc - '0 ') ] ) ; return true; } else {return false;} } void printboard () {using namespace std ; para (unsigned int uiRow = 0 ; uiRow < 10 ; + + uiRow ) {for (unsigned int uiCol = 0 ; uiCol < 10 ; + + uiCol ) { cout << QueryLocation ( uiRow , uiCol ) ;} cout << endl ;} } HeroIsDead bool () { mqHero.IsDead return ( ) ; } RemoveDeadMonsters void () {for ( int sin signo uiIndex = 0 ; uiIndex < 10 ; + + uiIndex ) { if ( mqaMonsters [ uiIndex ] IsDead ( . )) { uiRow int sin firmar ; unsigned int uiCol ; if ( LocateCreature ( uiRow , uiCol , y ( mqaMonsters [ uiIndex ])) ) { mqpaaCreatures [ uiRow ] [ uiCol ] = 0 ; std :: cout << " monstruo muerto ! " << std :: endl ;} } } } bool AllMonstersDead () { bool bAllDead = true; para (unsigned int uiIndex = 0 ; uiIndex < 10 ; + + uiIndex ) {if ) { bAllDead = false ;} ( mqaMonsters [ uiIndex ] IsDead (! ). bAllDead } return ;}

    privada: LocateCreature bool (unsigned int & uirRow , sin firmar int & uirCol , CCreature * qpCreature ) {for (unsigned int uiRow = 0 ; uiRow < 10 ; + + uiRow ) {for (unsigned int uiCol = 0 ; uiCol < 10 ; + + uiCol ) { if ( mqpaaCreatures [ uiRow ] [ uiCol ] == qpCreature ) { uirRow = uiRow ; uirCol = uiCol ; return true; } } } return false; } CDungeon mqDungeon ; CCreature mqHero ; mqaMonsters CCreature [ 10 ] ; CCreature * mqpaaCreatures [ 10 ] [ 10 ] ;} ; < br >

    Esta clase controla el movimiento de su héroe. Utilice " W ", " A", " S " y "Z " para mover a tu personaje . También genera 10 monstruos y el héroe dentro de la " mazmorra " y controla las interacciones entre ellos , tales como las muertes y posiciones.
    5

    Crear el programa principal que llama a las distintas clases y funciones e interactúa con el usuario . Puede controlar varios aspectos de su juego de este programa. Usa este código para crearlo:

    int main () { using namespace std ;//Borrar la dungeonCRolePlayingGame qGame ; bool bGameOver = false; do { qGame.PrintBoard () ;//Obtener la próxima moveChar cMove ; cout << "Use W , A, S o Z para mover :" << endl ; std :: cin >> cMove ;//Comprobar si el movimiento es validif ( qGame.MoveHero ( cMove )) { //Si el héroe es deadif ( qGame.HeroIsDead ()) { cout << " Usted ha muerto ! " << endl ; bGameOver = true ;} else { //Eliminar los muertos monstruos de los gameqGame.RemoveDeadMonsters () ;//Si todos los monstruos son deadif ( qGame.AllMonstersDead ()) { cout << "Dungeon liquidado! " << endl ; bGameOver = true ;} } } } while ( bGameOver !) ; return 0 ;}
    6

    Compile su nuevo proyecto y ejecutarlo para probar si funciona como se espera . Cambiar varios ajustes para mejorar la jugabilidad hasta que esté satisfecho con el resultado.

    Previous :

    next :
      Artículos relacionados
    ·Descripción de la función del sistema C 
    ·Cómo programar Game Boy Advance Juegos 
    ·Cómo evaluar multiplicación booleana en C + + 
    ·Cómo utilizar la función de devolución de llamada en…
    ·Cómo convertir a String Float en C + + 
    ·Cómo obtener gráficos en C + + 
    ·Cómo compilar un CPP en DOS 
    ·Cómo crear un programa de C en Visual Studio 
    ·Cómo agregar una casilla de verificación de la column…
    ·Cómo sacar el producto de una matriz en C + + 
      Artículos destacados
    ·Cómo calcular algoritmos Mediana 
    ·Cómo editar SQL en un Centro de Control de DB2 
    ·Cómo convertir cadenas de tiempo en Vb.Net 
    ·¿Qué es la carpeta netfx 
    ·Cómo pasar datos de un formulario en un acceso de cons…
    ·Cómo leer los archivos PDF en PHP 
    ·Cómo hacer que el código Java en un Applet 
    ·Cómo cambiar la contraseña de root de MySQL 
    ·Cómo editar archivos PHP 
    ·Cómo permanecerás conectado a ColdFusion 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com