Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

thundermare

Treue Seele

  • »thundermare« ist der Autor dieses Themas

Beiträge: 101

Wohnort: neuwied

Beruf: anwendungsentwickler

  • Private Nachricht senden

1

02.02.2006, 14:24

SDL weisses surface

hi,

bei folgendem code wird das ganze surface weiss wenn ich es mit der maus abwähle und wieder anklicke, was habe ich falsch gemacht???

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include "SDL.h"
#include <conio.h>
#include <math.h>

using namespace std;

#ifdef _WIN32
#undef main
#endif

void putpixel(SDL_Surface *p,Uint32 color,int x,int y)
{
    int bpp;
    Uint32 *pixeladress;
    bpp = p->format->BytesPerPixel;
    pixeladress = (Uint32 *) p->pixels+p->pitch*y+x*bpp;
    *pixeladress = color;
        
}




void main()
{
    int d=40;

    if(SDL_Init(SDL_INIT_VIDEO)<0)
    {
        cout<<"Fehler";
        SDL_QUIT;
    }

    SDL_Surface *p,*image;
    p = SDL_SetVideoMode(600,500,32,SDL_HWSURFACE|SDL_DOUBLEBUF);
        
    Uint32 color = SDL_MapRGB(p->format,grün,rot,blau);
    
    image = SDL_LoadBMP("STS.bmp");
    if(SDL_BlitSurface(image,NULL,p,NULL)<0)
    cout<<"fehler";


    do
    {
    SDL_LockSurface(p);
    putpixel(p,color,d,c);
    SDL_UnlockSurface(p);
    SDL_UpdateRect(p,0,0,0,0);
        SDL_Flip(p);
        SDL_Delay(10);
        d++;
        if(d>200)
            d=100;
    }while(kbhit()==0);
    getch();
    SDL_QUIT;
}

2

03.02.2006, 08:42

wirklich schade das ich das c++ für spieleprogrammierer noch nicht soweit durch hab ... interessiert mich nämlich auch!
naja mal schaun ob ich was find...

mfg Triac

thundermare

Treue Seele

  • »thundermare« ist der Autor dieses Themas

Beiträge: 101

Wohnort: neuwied

Beruf: anwendungsentwickler

  • Private Nachricht senden

3

15.02.2006, 16:00

kann mir keinher hier einen Tipp geben woran das liegt?
Brotherhood, Unity, Peace

www.datrock.de

Anonymous

unregistriert

4

16.02.2006, 09:08

Hallo!

Mir fallen folgende Dinge auf:

C-/C++-Quelltext

1
Uint32 color = SDL_MapRGB(p->format,grün,rot,blau); 


"grün" ist kein gültiger Variablenname - und die Inhalte aller
Farbkomponenten sind zudem nicht definiert in deinem Quelltext.

C-/C++-Quelltext

1
SDL_UpdateRect(p,0,0,0,0); 


Ist nicht nötig, wenn du SDL_Flip machst - diese Zeile kann raus. Evtl.
liegt hier dein Problem... müsstest du mal ausprobieren.

C-/C++-Quelltext

1
SDL_BlitSurface(image,NULL,p,NULL)


Solltest du bei JEDEM Frame durchführen - d.h. in die while-Schleife mit
aufnehmen, denn bei Doublebuffering musst du zwei Surfaces mit dem
Bild füllen - und du tust es nur bei einem. Dann "läuft" der Punkt den
du mit putpixel setzt natürlich von links nach rechts und zieht keine Spur
mehr...

Konnte ich etwas helfen?

Grüße
Stefan

Werbeanzeige