Gå til innhold

nahoy

Medlemmer
  • Innlegg

    455
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av nahoy

  1. Tror ikke Norge var noe "u-land", så på noen grafer fra ssb, og det viser seg at norge holdt seg ganske gjevnt på 20% under svenskene når det gjelder bnp per innbygger, med unntak av årene rett etter krigen, og fra 1973 av. Etter 1973 går norsk økonomi til himmels i forhold til svenskenes, i 1990 ligger vi likt med dem, og i dag 25-30% over dem. I 1968 ble de første oljefunnene gjort, og i 1970 ble ekofisk funnet, og i 1971 startet utvinningen. Man kan vel regne med at produksjonen tok seg opp først etter ett til to år, og dette stemmer med statistikken.

     

    Jeg har også snakket med to venner av meg som begge har samfunnsøkonomi på skolen, og begge mener at Norges økonomi var god rett før oljefunnene.

    De nevnte ting som allerede er nevnt her, som fisk, aluminium, vannkraft, skogbruk.

    Men også at Norge har et godt politisk system, som ligner Sveriges på mange måter, og det er også relativt ukorrupt.

     

    http://www.ssb.no/magasinet/norge_sverige/...5-05-09-01.html

     

    Kan legge ut hele arbeidet mitt her, når jeg blir ferdig.

  2. Nå har altså bot'ene funnet meg, og det er umulig å stoppe dem. Gjesteboken min er full av reklame for porno, og jeg vet ikke hvordan jeg skal fikse det.

     

    Det er vel kanskje en mulighet å ha et sånt bilde med skrift på som man skal skrive av for å verifisere at man er et menneske? Hva kalles denne metoden? Finnes det et gratis system som er lett å implementere i php-koden min?

  3. Først vil jeg bare anbefale spillet, som er en modifikasjon av snes-spillet, A link to the past. Det kan lastes ned på http://zeldaparallelworlds.googlepages.com/home, Du må allerede ha romfilen til a link to the past for at det skal virke. Spillet er som sagt en hack/modifikasjon av a link to the past (zelda 3), og ligner ganske mye, men fyren som har laget det har laget masse ny grafikk, og helt nye verdener og templer, ingenting skal være gammelt av "verdendesignen". Musikken er den samme, men noe ny musikk skal det også være.

     

    Spillet er enormt til å være laget av et fan, speedrunnen skal visst være på over 50 minutter, til sammenligning er a link to the past speedrunnen på 1 time og 20 minutter.

    Fyren som har laget det skal ha brukt fem år på det eller noe sånt.

     

    Jeg står imidlertid fast i spillet, det er ganske vanskelig. Jeg er nettopp ferdig med første borg, og skal nå til en havn og møte "sahasrahla", jeg kommer meg ikke ned dit, kanskje noen som har spilt spillet før si meg hvordan jeg kommer dit, har sittet i over en time og prøvd å komme videre, og er veldig frustrert.

  4. Sitter her og gnir meg i hodet, for det er et spill jeg ikke kommer på hva heter.

    Det er et spill der man starter i jungelen (litt som flashback), og må slåss med ville dyr og klatre i trær og hoppe (også litt som i flashback/prince of persia).

    Noen som har en ide til hvilket spill dette kan være?

     

    Jeg liker også andre spill av denne typen; Prince of Persia 1 & 2, another world, flashback osv. Noen som vet om noen bra?

  5. Jeg leker litt med cosinus og sinus i c++, men så støtte jeg på dette problemet:

    #include <stdio.h>
    #include <iostream.h>
    #include <math.h>
    
    using namespace std;
    
    int main ()
    {
     cout << cos(270) << endl;
     cout << cos(-90) << endl;
     system("pause");
     return 0;
    }

    Når jeg kjører koden får jeg tallene:

     

    0.984382

    -0.448074

     

    cosinus av 270 og 90 skal være 0!

    Hva er dette for noe tull?

     

    EDIT: Fant ut av det selv. cos() bruker radianer!

    Det var litt teit. Da blir jeg nødt til å lære litt om radianer.

  6. Jeg går på almennfaglig andre år nå, og jeg har stor interesse for programmering/it osv.

     

    Jeg tenkte kanskje det var en ide å ta fag som har med programmering å gjøre som privatist (kun lese boka og ta eksamen), men jeg vet verken om fagene finnes eller hva de heter.

     

    Kan noen informere meg litt om det? Går det an å ta programmering som privatist?

  7. Jeg har nå laget en ny versjon. Jeg håper den er litt bedre.

    Dette har jeg gjort:

    1. delt opp koden i tre filer, main, en med klassene og spriten og en med globaler.

    Og en main.cpp

    2. Har gått over til å bruke musa i stedenfor tastaturet.

    3. Tegnet en hvit kant rundt skjermen.

    4. Forbedret kollisjonstestingen (har ikke lest om sweeping enda, synes det var vanskelig å finne noe om.)

    5. Har gjort slik at ballen går i ulike vinkler avhengig av hvor den treffer.

     

    globals.hpp

    Klikk for å se/fjerne innholdet nedenfor
    #ifndef _globals_hpp_
    #define _globals_hpp_
    
    class globals { };
    
    #endif
    
    const int SCREENWIDTH=1024;
    const int SCREENHEIGHT=768;
    float frameTimeAvg=3.5;
    int done;

     

    main.cpp

    Klikk for å se/fjerne innholdet nedenfor
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctime>
    #include <cmath>
    
    //skal fjernes når jeg er ferdig med utviklingen
    #include <iostream>
    
    #include <SDL/SDL.h>
    
    #include "globals.hpp"
    #include "classes.hpp"
    
    //skal og fjernes
    using std::cout;
    
    //ting som hører til tidperframe og sånt
    clock_t startTime;
    clock_t lastFrameStart;
    float timePerFrame[10];
    int totalFrames=0;
    
    float setFrameTime()
    {
      //sender alt lenger "bakover" i fartsarrayet
      for(int i=9; i>0; i--)
      {
        timePerFrame[i]=timePerFrame[i-1];
      }
      timePerFrame[0]=clock()-lastFrameStart;
      
      //finner gjennomsnittlig fart
      float totalTime=0.0;
      for(int i=9; i>=-1; i--)
      {
        totalTime+=timePerFrame[i];
      }
      if(totalFrames>20)   frameTimeAvg=totalTime/10.0;
      //cout << frameTimeAvg << "\n";
      lastFrameStart=clock();
    }
    
    
    //game variables
    const int SHIPHEIGHT=10;
    bool drawborder=1;
     
    void Slock(SDL_Surface *screen)
    {
     if ( SDL_MUSTLOCK(screen) )
     {
       if ( SDL_LockSurface(screen) < 0 )
       {
         return;
       }
     }
    }
    
    void Sulock(SDL_Surface *screen)
    {
     if ( SDL_MUSTLOCK(screen) )
     {
       SDL_UnlockSurface(screen);
     }
    }
    
    void DrawPixel(SDL_Surface *screen, int x, int y,
                                       Uint8 R, Uint8 G, Uint8 B)
    {
     Uint32 color = SDL_MapRGB(screen->format, R, G, B);
     switch (screen->format->BytesPerPixel)
     {
       case 1: // Assuming 8-bpp
         {
           Uint8 *bufp;
           bufp = (Uint8 *)screen->pixels + y*screen->pitch + x;
           *bufp = color;
         }
         break;
       case 2: // Probably 15-bpp or 16-bpp
         {
           Uint16 *bufp;
           bufp = (Uint16 *)screen->pixels + y*screen->pitch/2 + x;
           *bufp = color;
         }
         break;
       case 3: // Slow 24-bpp mode, usually not used
         {
           Uint8 *bufp;
           bufp = (Uint8 *)screen->pixels + y*screen->pitch + x * 3;
           if(SDL_BYTEORDER == SDL_LIL_ENDIAN)
           {
             bufp[0] = color;
             bufp[1] = color >> 8;
             bufp[2] = color >> 16;
           } else {
             bufp[2] = color;
             bufp[1] = color >> 8;
             bufp[0] = color >> 16;
           }
         }
         break;
       case 4: // Probably 32-bpp
         {
           Uint32 *bufp;
           bufp = (Uint32 *)screen->pixels + y*screen->pitch/4 + x;
           *bufp = color;
         }
         break;
     }
    }
    
    void updatebg(SDL_Surface *screen, const int X, const int Y, const int WIDTH, const int HEIGHT)
    {
     for(int x2=X; x2<X+WIDTH; x2++)
     {
       for(int y2=Y; y2<Y+HEIGHT; y2++)
       {
         if(y2>=0 && x2<SCREENWIDTH && y2>=0 && y2<SCREENHEIGHT)
           DrawPixel(screen, x2,y2,0,0,0);
       }
     }
    }
    
    void drawsprite(SDL_Surface *screen, const int SPRITE[20][20], const int X, const int Y)
    {
     for(int y2=0; y2<20; y2++)
     {
       for(int x2=0; x2<20; x2++)
       {
         if(SPRITE[y2][x2])
           DrawPixel(screen, (x2+X),(y2+Y),255,255,255);
       }
     }
    }
    
    void DrawScene(SDL_Surface *screen)
    {
     Slock(screen);
     
     //pikseltegning starter her, spillet skal bare inneholde piksler, ingen bilder
     updatebg(screen, (int)ball.lastx, (int)ball.lasty, 20, 20);
     updatebg(screen, ship.lastx, ship.lasty, ship.width, SHIPHEIGHT);
     drawsprite(screen, ball.sprite, (int)ball.x, (int)ball.y);
     for(int x=ship.x; x<ship.x+ship.width; x++)
     {
       for(int y=ship.y; y<ship.y+SHIPHEIGHT; y++)
       {
         DrawPixel(screen, x,y,255,255,255);
       }
     }
     
     //tegner fint hvit kant
     if(drawborder)
     {
       for(int x=1; x<SCREENWIDTH-1; x++)
       {
         DrawPixel(screen, x,0,255,255,255);
         DrawPixel(screen, x,SCREENHEIGHT-1,255,255,255);
       }
       for(int y=1; y<SCREENHEIGHT-1; y++)
       {
         DrawPixel(screen, 0,y,255,255,255);
         DrawPixel(screen, SCREENWIDTH-1,y,255,255,255);
       }
       drawborder=0;
     }
       
     
     Sulock(screen);
     SDL_Flip(screen);
    }
    
    int main(int argc, char *argv[])
    {  
     //input variables
     int mousex, mousey;
     Uint8* keys;
     
     if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 )
     {
       printf("Unable to init SDL: %s\n", SDL_GetError());
       exit(1);
     }
     atexit(SDL_Quit);
    
     SDL_Surface *screen;
     screen=SDL_SetVideoMode(SCREENWIDTH,SCREENHEIGHT,32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);
     if ( screen == NULL )
     {
       printf("Unable to set 1024x768 video: %s\n", SDL_GetError());
       exit(1);
     }
     SDL_Delay(1000); //A small delay to make sure that the game doesn't start before the resulution is set.
     
     SDL_ShowCursor(SDL_DISABLE);
     
     
     /***************************
      * Game loop starting here *
      ***************************/
      
     clock_t startTime=clock();
     done=0;
     while(done == 0)
     {
       setFrameTime();
       
       //input here
       //keyboard
       keys = SDL_GetKeyState(NULL);
       if ( keys[SDLK_p])
         while(keys[SDLK_p])
           keys = SDL_GetKeyState(NULL);
                            
       //mouse
       SDL_GetMouseState(&mousex, &mousey);
       ship.move(mousex);
       
       ball.move();
       
       
       SDL_Event event;
       while ( SDL_PollEvent(&event) )
       {
         if ( event.type == SDL_QUIT )  {  done = 1;  }
    
         if ( event.type == SDL_KEYDOWN )
         {
           if ( event.key.keysym.sym == SDLK_ESCAPE ) { done = 1; }
         }
       }
       
       //for debugging, simulating bad pc
       //SDL_Delay(55);
       
       DrawScene(screen);
       
       ship.lastx=ship.x;
       ship.lasty=ship.y;
       ball.lastx=ball.x;
       ball.lasty=ball.y;
       totalFrames++;
     }
    
     return 0;
    }

     

    classes.hpp

    Klikk for å se/fjerne innholdet nedenfor
    #ifndef _classes_hpp_
    #define _classes_hpp_
    
    class classes { };
    
    #endif
    
    
    #include <cmath>
    
    class Cship
    {
     public:
       int x;
       int y;
       int lastx;
       int lasty;
       int width;
       float speed;
       Cship()
       {
         x=60;
         y=700;
         width=75;
         speed=1.0;
       }
       void move(int newX)
       {
         x=newX;
         //check if the ship is moving outside the screen
         if(x<1)x=1;
         if(x>SCREENWIDTH-width-1)x=SCREENWIDTH-width-1;
       }
    };
    Cship ship;
    
    
    const int ballsprite[20][20]=
    {//0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
     {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0},//0
     {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},//1
     {0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0},//2
     {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0},//3
     {0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0},//4
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0},//5
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0},//6
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0},//7
     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1},//8
     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},//9
     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},//0
     {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//1
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//2
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//3
     {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//4
     {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},//5
     {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},//6
     {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},//7
     {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},//8
     {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0} //9
    };
    
    class Cball
    {
     public:
       Cball();
       void move();
       float x;
       float y;
       float lastx;
       float lasty;
       float totalSpeed;
       float xspeed;
       float yspeed;
       int sprite[20][20];
    };
    
    Cball::Cball()
    {
       for(int a=0; a<20; a++)
       {
         for(int b=0; b<20; b++)
         {
           sprite[a][b]=ballsprite[a][b];
         }
       }
       x=150;
       y=150;
       totalSpeed=1.1;
       xspeed=yspeed=totalSpeed/2;
    }
    
    void Cball::move()
    {
       x=lastx+(int)(xspeed*frameTimeAvg);
       y=lasty+(int)(yspeed*frameTimeAvg);
       
       //kollisjonstesting
       //noen av verdiene er litt rare fordi jeg ikke vil at ballen skal ødelegge kanten 
       if(x<1)
       {
         xspeed*=-1;
         x=1;
       }
       
       if(x>SCREENWIDTH-21)
       {
         xspeed*=-1;
         x=SCREENWIDTH-21;
       }
       
       if(y<1)
       {
       yspeed*=-1;
       y=1;
       }
       
       if(y>SCREENHEIGHT-20)
       {
       done=1;
       }
       
       //sjekker om ballen treffer skipet
       if((x > ship.x-15) && (x < ship.x+ship.width+15)
       && y>700-20 && lasty<=700-20 && yspeed>0)
       {
       yspeed*=-1;
       float ballCentre=x+10.0;
       float shipCentre=ship.x+ship.width/2;
       float ballShippositioning=ballCentre-shipCentre;
       float relationalPos=ballShippositioning/(ship.width*0.7);//0.7 ikke 0.5 slik at yspeed ikke blir 0 og ballen ikke snurrer evig rundt
       xspeed=relationalPos * totalSpeed;
       yspeed=(1-(std::abs(relationalPos))) * -totalSpeed;
       if(yspeed>-0.3)yspeed=-0.3; // i tilfelle bøgg
       }
       //Slutt på kollisjonstesting
    }
    Cball ball;

     

    Kommentarene er for tiden en herlig blanding av norsk og engelsk. Planlegger å skrive om til engelsk.

    Arkanoid_alpha0.3_src.zip

  8. Fant ut av det nå, bare jeg som hadde vært så tullete at jeg klarte å definere Cship ship først.

     

    Nå har jeg imidlertid et annet problem.

    Jeg har delt opp prosjektet slik:

    main.cpp

    globals.hpp

    classes.cpp

     

    Jeg trenger noen av globalene i både main.cpp og classes.cpp

    Problemet er at jeg da får en multiple definition error.

    Hvordan skal jeg fikse dette?

    Mener å ha sett "#pragma once" eller noe et eller annet sted, er det dette jeg skal skriver?

     

    EDIT:

    Fikk det til nå, endret filnavnet til classes.hpp.

    Dette synes jeg var litt merkelig, trodde ikke filetternavnet hadde noe å si.

    Hvoror er det slik?

    Hvordan burde jeg egentlig fikse det?

  9. Er kommet ganske langt nå, men jeg har et problem.

    Jeg lurer på hvordan jeg får hentet en variabel fra classen ship fra classen ball.

     

     

     

    class ball
    {
     public:
       ball()
       {
         for(int y=0; y<20; y++)
         {
           for(int x=0; x<20; x++)
           {
             sprite[y][x]=ballsprite[y][x];
           }
         }
         xdir=1;
         ydir=1;
       }
       int x;
       int y;
       int lastx;
       int lasty;
       float xspeed;
       float yspeed;
       int xdir;
       int ydir;
       int sprite[20][20];
       void move()
       {
           x=lastx+xdir*(int)(xspeed*frameTimeAvg);
           y=lasty+ydir*(int)(yspeed*frameTimeAvg);
           
           //kollisjonstesting
           //noen av verdiene er litt rare fordi jeg ikke vil at ballen skal ødelegge kanten 
           if(x<1)
           {
             xdir*=-1;
             x=1;
           }
           
           if(x>SCREENWIDTH-21)
           {
             xdir*=-1;
             x=SCREENWIDTH-21;
           }
           
           if(y<1)
           {
           ydir*=-1;
           y=1;
           }
           
           if(y>SCREENHEIGHT-20)
           {
           done=1;
           }
           
           //sjekker om ballen treffer skipet
           if(x>ship.x-20 && x<
           ship.x+ship.width+20
           && y>700-20 && lasty<=700-20 && ydir==1)
           {
           ydir=-1;
           y=700-20;
           }
           
           //Slutt på kollisjonstesting
       }
    };

     

    Det går visst ikke an å skrive ship.x inne i ball , da får jeg denne erroren:

     

    expected primary-expression "before '.' token

     

    Hva skal man egentlig skrive?

  10. Hmm.. Jeg har satt opp en webserver med apache og mysql, og det fungerer ganske bra, så det er litt synd å avinstallere xp akkurat nå.

    Men i tilfelle det skulle finne på å klikke, hvilken edition av ClarkConnect burde jeg laste ned?

     

    Finnes det noen portforwarding-programmer til xp som fungerer?

  11. Det hjalp en god del, zirener.

    Jeg skal ta en titt på boka snart, får ikke gjort det helt enda.

    Imens prøvde jeg å objektorientere programmet mitt.

    Jeg støtte imidlertid på et problem.

     

    const int ballsprite[20][20]=

    {//0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

    {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0},//0

    {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},//1

    {0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0},//2

    {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0},//3

    {0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0},//4

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0},//5

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0},//6

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0},//7

    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1},//8

    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},//9

    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},//0

    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//1

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//2

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//3

    {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0},//4

    {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},//5

    {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0},//6

    {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},//7

    {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0},//8

    {0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0} //9

    };

     

    class ball

    {

    public:

    int x;

    int y;

    int lastx;

    int lasty;

    float xspeed;

    float yspeed;

    int* sprite[20][20];

    void init();

    };

     

    void ball::init()

    {

    sprite=&ballsprite;

    }

     

    Får en error:

    53 E:\My Documents\programmering\C++\Arkanoid\globals.hpp incompatible types in assignment of `const int (*)[20][20]' to `int*[20][20]'

  12. Jippi, nå virker det. Hadde tilfeldigvis brent en cd med alle driverne mine i 2004.

    Så utrolig, utrolig, utrolig teit av nvidia. Det står at driveren er for tnt2 og geforce, og så er den ikke det allikevel! Utolig sjofelt. Nvidia er noen idioter.

     

    Nå virker det i hvertfall, kjører cs16 og css glatt. Ok, ikke glatt, men det virker nå i hvertfall. Takk for hjelpen

×
×
  • Opprett ny...