Csvk! Skrevet 7. august 2009 Forfatter Del Skrevet 7. august 2009 Takk for tipsene folkens! Setter stor pris Lenke til kommentar
AMajor Skrevet 7. august 2009 Del Skrevet 7. august 2009 det kan også være klokt å lære seg litt om klasser når du først er i gang med C++. C++ er jo hovedsakelig ment for å være objektorientert, ellers ville du jo bare ha brukt C. right? Klasser er relativt simpelt å lære seg, kan være tungt å bruke de i starten, men når du er vant med de så er de veldig handy. Pluss at du kan legge de inni egne .cpp og .h filer som du kan inkludere i mainkoden. Klasser gjør at du kan "wrappe" inn datatyper slik at de ikke blir globale og uoversiktelige. her er et dårlig eksempel på en klasse: player.h (headeren) feks: class Player { public: Player(); ~Player(); void Init(int num_lives); void MovePlayer(int x, int y); int Shoot(int strength); void Update(); //her inne kan du feks oppdatere alt mellom himmel og jord //feks kan du "handle" flytting, skyting, bounding-box deteksjon osv.. private: int life_energy; int num_lives; int score; }; de er tre forskjellige operatorer eller hva jeg skal kalle de (er litt trøtt nå så må unnskylde meg at jeg ikke bruker riktige formulering). De heter public, protected og private anyway. Foreløpig kan du egentlig bare bruke public. De to andre er for arv og sånt, men det trenger du ikke lære deg med en gang. Men feks istedenfor å ha masse globale variabler så ligger variablene dine inni objektet, dvs en instanse av en klasse. Klassen er bare en beskrivelse over det du vi lage. main() { Player player; //lager en instanse av Player klassen Player spaceship_enemy; //en ny instanse Player boss_enemy; //enda en instanse player.Init(4); //player får feks 4 liv spaceship_enemy.Init(1); //ett liv spaceship_enemy.Strength(20); boss_enemy.Init(1); boss_enemy.Strength(100); //bossen har 100 i styrke. while(1) { player.Update(); spaceship_enemy.Update(); //en annen klasse eller global funksjon kan feks tegne disse spritene. draw(player); draw(spaceshipt...); osv.. } } Player.cpp feks: Player::Player() { } Player::~Player() { } void Player::Update() { //... } //osv... //dette var et veldig dårlig eksempel, men håper du forstår at dette kan gjøre koden din //mye mer oversiktelig og enkelere å håndtere. Lenke til kommentar
LostOblivion Skrevet 10. august 2009 Del Skrevet 10. august 2009 (endret) Det er også greit å venne seg til vanlige konvensjoner når det gjelder hvordan man skriver funksjonsnavn og variable. Funksjonsnavn: myFunc() MyFunc() my_func() Variable: myVar my_var Konstanter (#define, const) og enumerasjoner: MY_CONST MyConst Klasser (class) og datastrukturer (struct): MyClass Konvensjon i Unix for typedefinisjoner (typedef): struct MyStruct { int i; }; typedef struct MyStruct mystruct_t; Du står selvfølgelig fritt til å skrive hva du selv vil, men de fleste ender opp med dette her--og det er mer leselig for andre som leser koden din. Endret 10. august 2009 av LostOblivion Lenke til kommentar
Gjest Slettet+9871234 Skrevet 2. september 2009 Del Skrevet 2. september 2009 Hei! Jeg er en sånn folk flest vil kalle nybegynner i C++. Har ikke programmert i mer enn noen uker i C++. Tidligere erfaringer er smått, som i Game Maker, om noen er kjent med scriptspråket der. Dette er andre utgave av programmet (det første var tungt skrevet og ikke så effektivt). Har du noen tanker angående spillet, som forbedring, bedre/raskere måter å skrive koden på osv. del dem med meg er du snill. Jeg vil at koden min skal være mest effektiv og rask som mulig. Jeg vil jo ikke utvikle dårlige vaner o.l. Here is the code: Dersom du kjenne Game Maker er det jo et av skripting språkene som ligner litt på C++ i syntax. Det kan være lurt å kombinere Game Maker for fleksibilitet med C++ kode til selve spill motoren. Referanse: http://www.courseptr.com/ptr_detail.cfm?gr...8-1-58450-452-8 Andre utgave hare et eget kapittel 14 om hvordan scripting kode skal embeddes i C++ prosjekter. Ytterligere informasjon: https://www.diskusjon.no/index.php?showtopic=633431&st=43 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå