Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Grafikmotor?
Sen rekommenderar jag openGL. Det är lite mer avancerat än SDL, men du kan göra 3D grejer med det. Det är också hårdvaru accelererat, till skillnad från SDL (inte 100 på detta dock), så openGL går snabbare.

,,ven om du bara ska göra 2D grejer, så är openGL mycket bättre på det med. Du kan göra sååå många mer saker, t.ex. rotera dina bilder och förstora samt förminska dem osv...

http://nehe.gamedev.net/

Postad 20:21 - 28:e April 2009
välja ikon på .exe fil
Hej, jag använder visual c++ express 2008.
Vet någon hur man ändrar ikonen på .exe filen som man skapar när man kompilerar?

Postad 06:31 - 29:e Mars 2009
Funktioner - Varför?!
Att jag använder while(true) är för att jag ska komma upp längst upp till funktionen med continue;
Men det hade varit smartare att kalla på funktionen igen, som du gör. Tänkte bara inte på att man kunde göra det.

Det nya spel btw är enligt mig perfekt:) Kan inte hitta något som borde förbättras. Möjligen om du använde klasser till monstrerna istället för structs. Men det är nog bara en smaksak;)

Postad 01:20 - 24:e Mars 2009
Funktioner - Varför?!
Ja den körs! Det var därför jag sa att du kunde ta bort rad 19 ur din källkod åvan. Den körs direkt, så fort jag kallar på den.
enemy=initMonster(enemy, mval);
betyder alltså att först så körs funktionen initMonster(enemy, mval); Sen så får enemy det returnerade värdet.

Ja som du ser så måste jag använda parametrar om jag inte använder globala variabler. Men skulle alla mina variabler ha varit globala, så skulle inte jag ha behövt använda parametrar.
Så frågan på denna tråd är med andra ord varför man INTE ska använda globala variabler. Detta kan du lätt hitta på google. För det är väldigt många som har denna fråga.

Jag kan sammanfatta till det här.
Om du använder globala variabler, så kommer det att ta mer minne från datorn, eftersom de hela tiden finns i RAM. Lokala variabler finns bara temporärt.

Det blir dessutom lättare o förstå koden med mindre variabler åt gången att tänka på.

Inom programmering så använder man Murphys lag. Om något kan gå fel, så kommer det troligen att gå fel. Du ger dig möjligheten att ända på dina variabler vart som helst och hur som helst. Detta kan leda till att hela din kod blir som spaghetti. Du kommer till slut inte hitta vart du har gjort fel, eftersom det kan ha skett vart som helst där du ändrar på den variabel som är fel, vilket kan vara vart som helst i ditt program.

Om du inte förstår vad jag menar, så nöj dig med att det bryter mot reglerna för objektorienterad programmering. Alltså den form av programmering du håller på med nu. Och det är inte bra;)

Postad 18:15 - 23:e Mars 2009
Funktioner - Varför?!
Jag tog mig friheten att skriva om din kod lite. Kolla noga igenom den, och fråga mig om precis vad som helst. Jag hoppas att du ser att min kod är betydligt enklare och lättförståeligare:P
  1. #include <iostream>
  2. #include <ctime>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. struct Monster{
  8. string name;
  9. int hp;
  10. int dmg;
  11. };
  12. Monster initMonster(Monster enemy, string mval){
  13. while(true) {
  14. if(mval=="M" || mval=="m") {
  15. enemy.name="Mygga";
  16. enemy.hp=25;
  17. enemy.dmg=20;
  18. }
  19. else if(mval=="T" || mval=="t") {
  20. enemy.name="Tiger";
  21. enemy.hp=40;
  22. enemy.dmg=50;
  23. }
  24. else if(mval=="B" || mval=="b") {
  25. enemy.name="Bjorn";
  26. enemy.hp=80;
  27. enemy.dmg=30;
  28. }
  29. else if(mval=="K" || mval=="k") {
  30. enemy.name="Krokodil";
  31. enemy.hp=50;
  32. enemy.dmg=60;
  33. }
  34. else if(mval=="G" || mval=="g") {
  35. enemy.name="Gorilla";
  36. enemy.hp=70;
  37. enemy.dmg=45;
  38. }
  39. else{
  40. cout << "Invalid KeyHit"<<endl;
  41. continue;
  42. }
  43. break;
  44. }
  45. return enemy;
  46. }
  47. void dmg(Monster enemy, int playerHp, int playerDmg) {
  48. playerHp-=enemy.dmg;
  49. enemy.hp-=playerDmg;
  50. system("cls");
  51. cout <<"Din fiende (en " <<enemy.name<<") har nu " <<enemy.hp<<" HP kvar"<<endl;
  52. cin.ignore();
  53. cin.get();
  54. }
  55.  
  56. Monster mvalf(Monster enemy) {
  57. string mval;
  58. system("cls");
  59. cout << "Vilket monster vill du möta?" << endl;
  60. cout << "[M]ygga, [T]iger, [K]rokodil, [B]jorn, [G]orilla" << endl;
  61. cin >> mval;
  62.  
  63. system("cls");
  64. cout << "Du valde:" << endl << endl;
  65.  
  66. enemy=initMonster(enemy, mval);
  67. return enemy;
  68. }
  69.  
  70. int main(){
  71. Monster enemy;
  72. int playerhp =100;
  73. int playerdmg =20;
  74. while(true){ //eller for( ;; )
  75. enemy=mvalf(enemy);
  76. dmg(enemy, playerhp, playerdmg);
  77. }
  78. return 0;
  79. }

Edit: Fattar inte hur man får texten grå.
Sen lägg märke till att jag inte använder några globala variabler, samt en extra funktion. Den extra funktionen gör det mycket enklare att läsa koden.

Fixa source-taggar //herj

Postad 14:02 - 23:e Mars 2009

Skicka meddelande
Läs s blog