Joo eli tekasi tuon tuli effecti oppaan avulla oman tuli effecti. Tuli toimii muuten todella hyvin, mutta jostain syystä tulessa on joka toisessa rivissä musta viiva. Mistä tämä voisi johtua?
Sori, tällä hetkellä on vähän hankala vastata kun kristallipallo on huollossa. Mitäs jos näyttäisit vähän esim. koodias?
Lumpio kirjoitti:
Sori, tällä hetkellä on vähän hankala vastata kun kristallipallo on huollossa. Mitäs jos näyttäisit vähän esim. koodias?
Ainiin tosiaankin, koodi unohtu pastee. :D
Noh tässä on main.cpp, jossa luulen vian sijaitsevan. Koittakaa saada selvää.
main.cpp
#include <SDL/SDL.h> #include <math.h> #include "funktiot.h" enum{ NLEVEYS = 640, NKORKEUS = 480 }; int puskuri1[NLEVEYS][NKORKEUS]; int puskuri2[NLEVEYS][NKORKEUS]; int kylmakohta = 0; int main(int argc,char * argv[]){ if(!alustaSDL()){ SDL_Quit(); return 0; } SDL_Surface *kkartta = SDL_LoadBMP("kylmennys.bmp"); SDL_Surface *kylma; kylma = SDL_CreateRGBSurface(SDL_SWSURFACE, kkartta->w, kkartta->h, 32, 0, 0, 0, 0); bool pois = false; SDL_Event tapahtuma; while(!pois){ SDL_PollEvent (&tapahtuma); piirrakuva(kylma,kkartta,0,0); for (int i = 0; i < 640; i++) { puskuri1[i][NKORKEUS-1] = 255; puskuri1[i][NKORKEUS-1] = 255; } lukitsepinta(naytto); for (int x = 1; x < NLEVEYS-1; x++) { for (int y = 1; y < NKORKEUS-1; y++) { int c1 = puskuri1[x+1][y+1]; int c2 = puskuri1[x-1][y-1]; int c3 = puskuri1[x-1][y+1]; int c4 = puskuri1[x+1][y-1]; int uusivari = (c1 + c2 + c3 + c4) / 4; Uint32 c; //puskuri2[x][y-1] = uusivari; if (y - kylmakohta >= 0){ c = OtaPixelivari(kylma,x,y - kylmakohta); }else{ c = OtaPixelivari(kylma,x,NKORKEUS + y - kylmakohta); } uusivari -= ((c >> 16) & 0xff); if (uusivari < 0){ uusivari = 0; } puskuri2[x][y-1] = uusivari; } } for (int x=1;x<NLEVEYS-1;x++) for (int y=1;y<NKORKEUS-1;y++) { piirrapixeli(naytto,x,y,paletti[puskuri2[x][y]]); puskuri1[x][y] = puskuri2[x][y]; } kylmakohta += 5; if (kylmakohta >= NKORKEUS){ kylmakohta = 0; } avaapinta(naytto); SDL_Flip(naytto); } SDL_Quit(); return 0; }
Sain koodin toimimaan kun paransin fileteriä. Eli otin myös ylä ala vasen ja oikee reunojen väri arvot.
Aihe on jo aika vanha, joten et voi enää vastata siihen.