Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: SDL_draw esimerkki

remontti-reiska [09.08.2004 19:51:36]

#

Voisiko joku näyttää pienen ohjelman, jossa käytetään esim. SDL_draw kirjaston Draw_Line funktiota. Itse olen saanut kaikkea muuta(mitä nyt näppäinten ja kuvien käsittelyä) SDL:ssä toimimaan, mutta nuo grafiikkafunktiot ovat kyllä täyttä hepreaa minulle. Josko vaikka sen esimerkin jälkeen innostuisin tekemään tänne joitakin SDL koodivinkkejä. :)

peki [09.08.2004 21:39:32]

#

Voin antaa palasen lähdekoodia ohjelmasta, joka piirtää sdl_drawin avulla pikseleitä ja neliöitä.
Tätä koodia ja sdl_drawin helppiä soveltamalla voit helposti piirtää viivoja, ympyröitä ja muita monimutkaisempia kuvioita.

int main(int argc, char* argv[])
{
  SDL_Init(SDL_INIT_VIDEO);
  atexit(SDL_Quit);

  SDL_Surface* pSurface = SDL_SetVideoMode ( SCREENWIDTH, SCREENHEIGHT, SCREENBPP, SCREENFLAGS );

  Draw_Init(); // alusta SDL_draw

  SDL_Event event;
  for (;;)
  {
    if ( SDL_PollEvent ( &event ) )
    {
      if ( event.type == SDL_QUIT ) break;
    }
    DrawScene(pSurface);
  }
  return(0);
}

void DrawScene(SDL_Surface* surface)
{
    //tyhjennä ruutu
    SDL_FillRect (surface, NULL, 0 );

    for(int a=0;a<=NUM_BOXES;a++)
        Draw_Rect(surface,
               boxes[a].x, boxes[a].y, boxes[a].width, boxes[a].height,
               SDL_MapRGB(surface->format, 100,100,100));

      // Tässä välissä on paaaaaljon törmäystarkistus tms. fysiikkakoodia :P

      Uint32 c;
      c = SDL_MapRGB(surface->format, particles[i].color.r, particles[i].color.g, particles[i].color.b);
      Draw_Pixel(surface, particles[i].x, particles[i].y, c);
    }

    // päivitä ruutu
    SDL_UpdateRect(surface, 0, 0, 0, 0);
}

Täsä on pikkupätkä omasta ohjelmastani, joka soveltaa SDL_drawia. Toivottavasti on apua.

remontti-reiska [10.08.2004 15:01:47]

#

#include <SDL.h>
#include <SDL_draw.h>

SDL_Surface *screen_surf;

int main( int argc, char* argv[] )
{
	SDL_Init(SDL_INIT_VIDEO);
	screen_surf = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);

		 Draw_Init();
		 Draw_Pixel(screen_surf, 45,45, 8);

	SDL_Delay(5000);  //odotetaan 5 sekuntia

	SDL_Quit();
	return 0;
}

Mitä vikaa tuossa on? Tulee vain virheilmoitukset:

Testit.obj : error LNK2001: unresolved external symbol _Draw_Pixel
Testit.obj : error LNK2001: unresolved external symbol _Draw_Init

thefox [10.08.2004 15:29:22]

#

Et ole linkannut SDL_draw-kirjastoa (luultavasti .lib/.a) mukaan.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta