Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
  Derniers articles
  • Comment lire un fichier CSV en C 
  • Comment utiliser C + + de rédiger u…
  • Comment organiser une liste en utili…
  • Comment animer dans XNA 
  • Comment construire un pilote de pér…
  • Comment faire pour convertir un enti…
  • Comment faire pour vérifier pour le…
  • Comment utiliser le Set STL classe C…
  • Comment faire pour convertir une cha…
  • Comment lire une ligne à l'aide du …
  •   C /C + + Programming
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    C /C + + Programming

    Comment faire un jeu RPG en C + +

    Lors de la lecture d'un jeu de rôle ou RPG, vous prenez le rôle d'un personnage imaginaire et l'expérience de ses aventures. Ces jeux peuvent être très complexes et impliquent des graphiques lourds . Les développeurs travaillent habituellement plusieurs mois sur le codage et le test du jeu . Cependant, vous pouvez créer un jeu RPG simple dans C + + . En outre, vous avez juste besoin de comprendre les bases de la programmation C + + . Vous pouvez créer un jeu RPG simple en utilisant un tableau à deux dimensions comme la carte et quelques classes pour contrôler votre personnage , les personnages ennemis et le game-play . Instructions
    1

    Ouvrez votre favori C + + éditeur et commencer un nouveau projet. Inclure le " iostream " et les bibliothèques " ctime » en utilisant ce code:

    # include # include
    2

    Créer une nouvelle classe représente votre héros et les monstres dans votre " donjon " en utilisant ce code:
    classe

    CCreature {public: CCreature (): muiAttack (0), muiDefense (0), muiHitPoints (3) { for (unsigned int uiIndex = 0; uiIndex <3 ; + + uiIndex ) { muiAttack = muiAttack + ( rand ()% 34); muiDefense = muiDefense + ( rand ()% 34); muiHitPoints = muiHitPoints + ( rand ()% 10) ;}} vide Attack ( CCreature & qrDefender ) {//Générer un nombre entre 1 et 100unsigned int uiAttack1 = ( rand ()% 100) + 1; unsigned int uiDefense1 = ( rand ()% 100) + 1; unsigned int uiAttack2 = ( rand ()% 100) + 1; unsigned int uiDefense2 = ( rand ()% 100) + 1 ;//Est-ce que l'attaquant ( héros ) hit if ( uiAttack1 < muiAttack && uiDefense1 > qrDefender ? . muiDefense ) { - . qrDefender muiHitPoints ; std :: cout << " ! Hit Monster " << std :: endl; } else { std :: cout << "Monster manquer! " ; << std :: endl; } //Vérifier si le monstre a frappé votre characterif ( uiAttack2 < qrDefender.muiAttack && uiDefense1 > muiDefense ) { - muiHitPoints ; std :: cout << " ; Hero Hit "<< std :: endl; } else { std :: cout <<" ! Hero Maladroit "<< std :: endl ;} std :: cout << , "Vos Points de vie: " << muiHitPoints << std :: endl; std :: cout << " Monster Points de vie :" << qrDefender.muiHitPoints << std : : endl; } bool isdead () {return ( muiHitPoints == 0) ; } private : unsigned int muiAttack ; unsigned int muiDefense ; unsigned int muiHitPoints ;} ;

    Cette classe initialise les trois attributs : attaque, défense et les points de frapper. Il utilise ensuite un algorithme d'attaque pour déterminer si l'attaque a réussi, les dégâts de l'attaque et les autres hit - points.
    3

    créer une nouvelle classe qui représente votre " donjon " comme un tableau bi- dimensionnel en utilisant ce code:
    classe

    CDungeon {public: CDungeon () {//Créer un mazechar caaMaze vide [10] [ 11] = {" ******* *** "," ****** "," ***** "," ** "," ****** "," *** **** "," **** "," **** "," ****** "," ********** " }; for (unsigned int uiRow = 0; uiRow < 10; + + uiRow ) { for (unsigned int uiCol = 0; uiCol < 10; + + uiCol ) { mcaaMaze [ uiRow ] [ uiCol ] = caaMaze [ uiRow ] [ uiCol ] ;}}} caractères GetMazeSquare (unsigned int uiRow , unsigned int uiCol ) {return mcaaMaze [ uiRow ] [ uiCol ] ; } private : mcaaMaze char [ 10] [10 ] ;} ;

    Vous pouvez changer la façon dont votre " donjon " ressemble en changeant la position des caractères " *"
    4

    créer la classe qui contrôle le game-play en utilisant ce code: .

    classe CRolePlayingGame {public: CRolePlayingGame () { //Initlialize le QTIME de nombres aléatoires de generatortime_t ; temps ( et QTIME ) ; srand ( (unsigned int) QTIME ) ;

    //Initialisation de la prison pour être emptyfor (unsigned int uiRow = 0; uiRow < 10; + + uiRow ) { for (unsigned int uiCol = 0; uiCol < 10; + + uiCol ) { mqpaaCreatures [ uiRow ] [ uiCol ] = 0; }} < br >

    //Créer un herobool bFoundSpot = false; ( ! bFoundSpot ), tandis que { unsigned int uiRow = 1 + ( rand ()% 8); unsigned int uiCol = 1 + ( rand ()% 8); if ( QueryLocation ( uiRow , uiCol ) == ' ') { bFoundSpot = true; mqpaaCreatures [ uiRow ] [ uiCol ] = &mqHero; }} //Création de 10 monstersbFoundSpot = false; unsigned int uiMonster = 0; ! while ( bFoundSpot ) {unsigned 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 ( unsigned int uiRow , unsigned int uiCol ) { for (unsigned int uIndex = 0; uIndex <10 ; + + uIndex ) {if ( mqpaaCreatures [ uiRow ] [ uiCol ] == & ( mqaMonsters [ uIndex ] ) ) {return (char) ('0 ' + uIndex );} } if ( mqpaaCreatures [ uiRow ] [ uiCol ] == & mqHero ) {return 'H' ; } else {return mqDungeon.GetMazeSquare ( uiRow , uiCol );}} bool MoveHero ( kcDirection const char ) {unsigned int uiHeroRow ; unsigned int uiHeroCol ; LocateCreature ( uiHeroRow , uiHeroCol , et ; mqHero ) ; unsigned int uiNextRow = uiHeroRow ; unsigned int uiNextCol = uiHeroCol ; switch ( kcDirection ) {case 'w' : case ' W' : { - uiNextRow ; break; } case ' s': case ' s' : { + + uiNextCol ; cas } ' z' ; break : case ' Z' : { + + uiNextRow ; break; } cas 'a' : case ' a' : { - uiNextCol ; break; } défaut : {return false;} } caractères 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;} } vide printboard () { using namespace std ; for (unsigned int uiRow = 0; uiRow < 10; + + uiRow ) { for (unsigned int uiCol = 0; uiCol < 10; + + uiCol ) { cout << QueryLocation ( uiRow , uiCol );} cout << endl; }} bool HeroIsDead () { de mqHero.IsDead de retour (); } RemoveDeadMonsters void () { for (unsigned int uiIndex = 0; uiIndex < 10; + + uiIndex ) {if ( mqaMonsters [ uiIndex ] isdead ( . ) ) {unsigned int de uiRow ; unsigned int uiCol ; if ( LocateCreature ( uiRow , uiCol , et ( mqaMonsters [ uiIndex ] ) )) { mqpaaCreatures [ uiRow ] [ uiCol ] = 0 , std :: cout << " monstre tué! " << std :: endl; }}}} bool AllMonstersDead () { bool bAllDead = true; for (unsigned int uiIndex = 0; uiIndex < 10; + + uiIndex ) {if ) { bAllDead = false; } ( mqaMonsters [ uiIndex ] isdead ( ! ). } return bAllDead ; }

    privé : LocateCreature bool (unsigned int & uirRow , unsigned 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 >

    Cette classe contrôle les mouvements de votre héros . Vous utilisez " W ", " A", " S" et "Z" pour déplacer votre personnage . Il génère également 10 monstres et votre héros dans votre " donjon " et contrôle les interactions entre eux, tels que les décès et les positions .
    5

    Créer le programme principal qui appelle les différentes classes et fonctions et interagit avec l'utilisateur. Vous pouvez contrôler divers aspects de votre jeu de ce programme . Utilisez ce code pour créer:

    int main () { using namespace std ;//Effacer le dungeonCRolePlayingGame qGame ; bool bGameOver = false; do { qGame.PrintBoard ( ) ;//Obtention de la prochaine movechar CMOVE ; cout << "Utiliser W, A , S ou Z se déplacer : " << endl; std :: cin >> CMOVE ;//Vérifiez si le mouvement est validif ( qGame.MoveHero ( CMOVE ) ) {//Si le héros est deadif ( qGame.HeroIsDead ()) { cout << " Vous êtes morts ! " << endl; bGameOver = true; } else {//Suppression de la mort monstres des gameqGame.RemoveDeadMonsters ( ) ;//Si tous les monstres sont deadif ( qGame.AllMonstersDead ()) { cout << "Dungeon dégagé! " << endl; bGameOver = true; }} } } while ( bGameOver !) ; return 0; }
    6

    compiler votre nouveau projet et l'exécuter pour tester si cela fonctionne comme prévu. Modifier les différents réglages pour améliorer la jouabilité jusqu'à ce que vous soyez satisfait du résultat.

     
    Article précédent:
    Article suivant:
    Articles recommandés
  • Comment utiliser Allegro à faire des graphiques en C 
  • Comment utiliser des pointeurs de fonction dans une recherche Argument binaire en C + + 
  • Comment vérifier si un tableau possède une valeur ou pas en C + + 
  • Comment combiner un fichier en utilisant C + + 
  • MFC ActiveX Tutoriel 
  • Comment faire pour démarrer un code C à partir de la Command Prompt 
  • Comment utiliser un boîtier commutateur avec des plages dans C + + 
  • Visual C 2005 Tutorial 
  • Caractéristiques de Turbo C 
  • Comment démonter une DLL 
  • Connaissances Informatiques © http://www.ordinateur.cc