Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να κάνει ένα RPG παιχνίδι σε C + +

Όταν παίζετε ένα παιχνίδι ρόλων , ή RPG , θα αναλάβει το ρόλο ενός φανταστικού χαρακτήρα και την εμπειρία περιπέτειες . Αυτά τα παιχνίδια μπορεί να είναι αρκετά πολύπλοκη και περιλαμβάνει βαριά γραφικά . Προγραμματιστές εργάζονται συνήθως αρκετούς μήνες για την κωδικοποίηση και τον έλεγχο του παιχνιδιού . Ωστόσο , μπορείτε να δημιουργήσετε ένα απλό παιχνίδι RPG σε C + + . Επιπλέον , το μόνο που χρειάζεται να κατανοήσουν τα βασικά της C + + προγραμματισμό . Μπορείτε να δημιουργήσετε ένα απλό παιχνίδι RPG χρησιμοποιώντας ένα δισδιάστατο πίνακα ως χάρτη και μερικά μαθήματα για τον έλεγχο του χαρακτήρα σας , τους χαρακτήρες του εχθρού και το παιχνίδι-παιχνίδι . Οδηγίες
Η

1 Ανοίξτε τον αγαπημένο C + +, το πρόγραμμα σας και να ξεκινήσετε ένα νέο έργο . Συμπεριλάβετε την « iostream " και " ctime " βιβλιοθήκες , χρησιμοποιώντας αυτόν τον κώδικα :

# include # include 2

Δημιουργήστε μια νέα κλάση που αντιπροσωπεύει τον ήρωά σου και τα τέρατα στο " μπουντρούμι " σας χρησιμοποιώντας αυτόν τον κώδικα :

τάξη CCreature { public: CCreature ( ) : muiAttack ( 0 ) , muiDefense ( 0 ) , muiHitPoints ( 3 ) { για ( ανυπόγραφο int uiIndex = 0 ? uiIndex <3 ? + + uiIndex ) { muiAttack = muiAttack + ( rand ( ) % 34) ? muiDefense = muiDefense + ( rand ( ) % 34) ? muiHitPoints = muiHitPoints + ( rand ( ) % 10 ) ? } } void επίθεση ( CCreature & qrDefender ) { //Δημιουργήστε ένα αριθμό μεταξύ 1 και 100unsigned int uiAttack1 = ( rand ( ) % 100 ) + 1 ? unsigned int uiDefense1 = ( rand ( ) % 100 ) + 1 ? unsigned int uiAttack2 = ( rand ( ) % 100 ) + 1 ? unsigned int uiDefense2 = ( rand ( ) % 100 ) + 1 ;//Μήπως ο εισβολέας ( ήρωας ) χτύπησε εάν ( uiAttack1 qrDefender ? . " ! Monster Missed" - muiDefense ) { . qrDefender muiHitPoints ? ? std :: cout <<" ! Monster Hit " < muiDefense ) { - muiHitPoints ? std :: cout <<" ? Hero Hit " <

Η κατηγορία αυτή προετοιμάζει τις τρεις ιδιότητες : επίθεση, άμυνα και χτύπησε σημεία . Στη συνέχεια, χρησιμοποιεί έναν αλγόριθμο επίθεση για να καθορίσει εάν η επίθεση ήταν επιτυχής , η ζημία της επίθεσης και τα υπόλοιπα σημεία που επλήγησαν .
Εικόνων 3

Δημιουργήστε μια νέα κλάση που αντιπροσωπεύει " μπουντρούμι " σας ως δισδιάστατη συστοιχία με τη χρήση αυτού του κώδικα :

τάξη CDungeon { κοινό: CDungeon ( ) { //Δημιουργία άδειο mazechar caaMaze [ 10 ] [ 11 ] = { " ******* *** "," ****** "," ***** " , " ** " , " ****** "," *** **** "," **** "," **** "," ****** "," ********** " } ? για ( unsigned int uiRow = 0 ? uiRow <10 ? + + uiRow ) { για ( unsigned int uiCol = 0 ? uiCol <10 ? + + uiCol ) { mcaaMaze [ uiRow ] [ uiCol ] = caaMaze [ uiRow ] [ uiCol ] ? } } } char GetMazeSquare ( unsigned int uiRow , unsigned int uiCol ) {επιστροφή mcaaMaze [ uiRow ] [ uiCol ] ? } private: char mcaaMaze [ 10 ] [ 10 ] ? } ?

Μπορείτε να αλλάξει τον τρόπο " μπουντρούμι " σας μοιάζει με την αλλαγή της θέσης των " * " χαρακτήρες
Η 4

Δημιουργήστε την τάξη που ελέγχει το παιχνίδι-παιχνίδι , χρησιμοποιώντας αυτόν τον κώδικα : .

τάξη CRolePlayingGame { κοινό: CRolePlayingGame ( ) { //Initlialize ο τυχαίος αριθμός generatortime_t qTime ? χρόνο ( & qTime ) ? srand ( ( unsigned int ) qTime ) ?

//Αρχικοποίηση το μπουντρούμι για να emptyfor ( unsigned int uiRow = 0 ? uiRow <10 ? + + uiRow ) { για ( unsigned int uiCol = 0 ? uiCol <10 ? + + uiCol ) { mqpaaCreatures [ uiRow ] [ uiCol ] = 0 ? } }

//Δημιουργία herobool bFoundSpot = false ? ενώ ( bFoundSpot ! ) { unsigned int uiRow = 1 + ( rand ( ) % 8 ) ? unsigned int uiCol = 1 + ( rand ( ) % 8 ) ? αν ( QueryLocation ( uiRow , uiCol ) == "" ) { bFoundSpot = true ? mqpaaCreatures [ uiRow ] [ uiCol ] = &mqHero; } } //Δημιουργία 10 monstersbFoundSpot = false ? unsigned int uiMonster = 0 ? ενώ ( bFoundSpot ) { ανυπόγραφο ! int uiRow = 1 + ( rand ( ) % 8 ) ? unsigned int uiCol = 1 + ( rand ( ) % 8 ) ? αν ( QueryLocation ( uiRow , uiCol ) == "" ) { mqpaaCreatures [ uiRow ] [ uiCol ] = & ? mqaMonsters [ uiMonster ] ? + + uiMonster ? εάν ( uiMonster == 10 ) { bFoundSpot = true ? } } } } char QueryLocation ( unsigned int uiRow , unsigned int uiCol ) { για ( unsigned int uIndex = 0 ? uIndex <10 ? + + uIndex ) {if ( mqpaaCreatures [ uiRow ] [ uiCol ] == & ( mqaMonsters [ uIndex ] ) ) { επιστροφή ( char ) ( '0 ' + uIndex ) ? } } αν ( mqpaaCreatures [ uiRow ] [ uiCol ] == & mqHero ) { επιστροφή «H» ? } else {επιστροφή mqDungeon.GetMazeSquare ( uiRow , uiCol ) ? } } bool MoveHero ( const char kcDirection ) { unsigned int uiHeroRow ? unsigned int uiHeroCol ? LocateCreature ( uiHeroRow , uiHeroCol , & ? mqHero ) ? unsigned int uiNextRow = uiHeroRow ? unsigned int uiNextCol = uiHeroCol ? διακόπτη ( kcDirection ) { περίπτωση «w» : υπόθεση « W » : { - uiNextRow ? διάλειμμα? } περίπτωση «s» : υπόθεση «S» : { + + uiNextCol ? σπάσει? } περίπτωση «z» : υπόθεση « Ζ » : { + + uiNextRow ? διάλειμμα? } περίπτωση «α» : περίπτωση «Α» : { - uiNextCol ? διάλειμμα? } προεπιλογή: { επιστροφή ψευδείς? } } char cNextLoc = QueryLocation ( uiNextRow , uiNextCol ) ? αν ( 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 ? για ( unsigned int uiRow = 0 ? uiRow <10 ? + + uiRow ) { για ( unsigned int uiCol = 0 ? uiCol <10 ? + + uiCol ) { cout <

private: bool LocateCreature ( unsigned int & uirRow , unsigned int & uirCol , CCreature * qpCreature ) { για ( unsigned int uiRow = 0 ? uiRow <10 ? + + uiRow ) { για ( unsigned int uiCol = 0 ? uiCol <10 ? + + uiCol ) {if ( mqpaaCreatures [ uiRow ] [ uiCol ] == qpCreature ) { uirRow = uiRow ? uirCol = uiCol ? return true ? } } } επιστροφή ψευδείς? } CDungeon mqDungeon ? CCreature mqHero ? CCreature mqaMonsters [ 10 ] ? CCreature * mqpaaCreatures [ 10 ] [ 10 ] ? } ?

Η κατηγορία αυτή ελέγχει την κίνηση του ήρωά σας . Μπορείτε να χρησιμοποιήσετε " W ", " A", " S" και "Z" για να μετακινήσετε τον χαρακτήρα σας . Ωοτοκεί επίσης 10 τέρατα και ήρωα σας μέσα " μπουντρούμι " σας και ελέγχει τις αλληλεπιδράσεις μεταξύ τους , όπως οι θάνατοι και οι θέσεις .
5

Δημιουργήστε το κύριο πρόγραμμα που καλεί τις διάφορες κατηγορίες και λειτουργίες και αλληλεπιδρά με το χρήστη. Μπορείτε να ελέγξετε τις διάφορες πτυχές του παιχνιδιού σας από αυτό το πρόγραμμα . Χρησιμοποιήστε αυτόν τον κωδικό για να το δημιουργήσετε :

int main ( ) { using namespace std ;//Clear η dungeonCRolePlayingGame qGame ? Bool bGameOver = false ? Do { qGame.PrintBoard ( ) ;//Αποκτήστε το επόμενο movechar cMove ? cout <<"Χρήση W , A, S , Z ή να μετακινήσετε : " <> cMove ;//Ελέγξτε εάν η κίνηση είναι validif ( qGame.MoveHero ( cMove ) ) { //Αν ο ήρωας είναι deadif ( qGame.HeroIsDead ( ) ) { cout <<" Έχετε Πέθανε ! " < Η 6

Συντάξτε το νέο σχέδιό σας και να το εκτελέσετε για να ελέγξετε αν λειτουργεί όπως θα περιμένατε . Αλλάξετε διάφορες ρυθμίσεις για να βελτιώσει το παιχνίδι -παιχνίδι , μέχρι να είστε ικανοποιημένοι με το αποτέλεσμα .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα