Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL_gfx

vsbs [05.06.2004 20:48:53]

#

voisko joku kertoo mistä ton kirjaston saa ladattuu?

rndprogy [05.06.2004 21:19:59]

#

Täällä näyttäisi olevan jotain siihen liittyvää.

Heikki [05.06.2004 21:26:38]

#

Täältä.

Edit. jaahas, olinpas minä hidas..

Edit 2: Jatketaanpas tätä ketjua:

Yritän asentaa ks. paketin, ja käännösvaiheessa saan seuraavanlaisen virheilmoituksen:

H:\SDLGFX>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

makefile(12) : fatal error U1035: syntax error : expected ':' or '=' separator
Stop.

Kopioin VisualC6.zip kansiosta makefilen pääkansioon, ja ajoin tuon nmaken.

vsbs [06.06.2004 17:33:19]

#

mullakin ois vähän kysyttävää.

Tein tommosen koodin:

#include <stdio.h>
#include <SDL.h>
#include <SDL_gfxPrimitives.h> // Sisältää pixelRGBA funktion.


int main()
{


  // Arvoja pixelRGBA:n käyttöön.
  Uint8 r, g, b, a;
  r = g = b = 125;
  a = 1;

  Sint16 x, y;
  x = y = 55;


  SDL_Surface* screen;

  screen = SDL_SetVideoMode(640,480,32,SDL_HWSURFACE|SDL_DOUBLEBUF);

  if(screen == NULL)
  {
    fprintf(stderr, "Unable to set videomode %s",SDL_GetError());
    return 1;
  }

  pixelRGBA(screen, x, y, r,g,b,a); // Yritetaan piirtaa kohtaan xy pikseli.

  return 0;
}

se käänty ihan kiltisti, mut ku yritin ajaa sen ni tuli tämmöset errorit:

--------------------Configuration: viiva - Win32 Debug--------------------
Compiling...
viiva.cpp
Linking...
viiva.obj : error LNK2001: unresolved external symbol __imp__pixelRGBA
viiva.obj : error LNK2001: unresolved external symbol _SDL_GetError
viiva.obj : error LNK2001: unresolved external symbol _SDL_SetVideoMode
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/viiva.exe : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.

viiva.exe - 5 error(s), 0 warning(s)

Tietääks joku mitä noi tarkottaa ja miten saan ne pois?

jcd3nton [06.06.2004 17:41:26]

#

elkku2 -> Pitäisikö sun linkittää jotain libbejä? Itselläni tulee samantapaisia virheitä jos unohtuu libit...

Aruviel [07.06.2004 10:45:12]

#

Elkku2:

Näyttääpä tutulta pätkältä ;).

int x, y;
x = y = 100;
// Piirtää punaisen pikselin kohtaan xy.
pixelColor(screen, x, y, 0xFF0000FF);

Alfa(väri/bitti?) kannattaa laittaa 0xFF (eli 255?), jotta sen värin edes näkee ruudulta. Eli niitä värejä "käytetään" - luulisin ainakin - antamalla heksa-arvo.

// esim. harmaahko väri:
Uint8 red, blue, green;
red = blue = green = 0xCC;

pixelRGBA(screen, 55, 66, red, green, blue, 0xFF);

Toivottavasti joku korjaa (jos tuossa jotain väärin on), aika heppoisella muistipohjalla tuo homma on minulla tuntuu olevan. Ja en ole testannut tuota pixelRGBA -hommaa, totesin silloin joskus pixelColorin riittävän minulle.

Ja pari omaa tyhmää kysymystä:
Voiko Uint8 -tyyppisiin muuttujiin sijoittaa tavallisia kokonaislukuja - olettaisin ainakin näin? Ovatko hyväksyttävät arvot sitten väliltä 0 - 255?

firebug [07.06.2004 11:04:55]

#

Aruviel kirjoitti:

Ja pari omaa tyhmää kysymystä:
Voiko Uint8 -tyyppisiin muuttujiin sijoittaa tavallisia kokonaislukuja - olettaisin ainakin näin? Ovatko hyväksyttävät arvot sitten väliltä 0 - 255?

Kyllä, Uint8 tarkoittaa etumerkitöntä 8-bittistä kokonaislukua, eli sallittavat arvot ovat välillä 0-255.

Vastaus

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

Tietoa sivustosta