Computer-Ag am WvS Blog der Computer-AG am Werner von Siemens Gymnasium Berlin

16. Januar 2015

16.1.2015

Filed under: Allgemein,Lernserver,Schulnetzwerk,Termine — admin @ 15:46

Morten, Johannes und Willi sind da. Die Rechner fahren sehr langsam hoch, weil da jetzt Android-Studio installiert ist (sagte und Frau Spyra).

Angelo demonstrierte letzt Mal noch Syntaxhighlighting:

Morten, Johannes und Willi reden über Minecraftserver. Und darüber, mit welcher Tastenkombination sich neue Fenster im Browser öffnen lassen bzw. neue Tabs (strg-T). Mit strg-N geht ein neues Fenster auf. Mit strg-Shift-N geht das zuletzt geschlossene Fenster wieder auf mit der Seite, die dort zuletzt aufgerufen war. Angelo kommt auch.

Wir wollen was mit SDL machen. Geht auch in der TTY-Konsole.

Dieser Code …

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <SDL/SDL.h>

void
draw(SDL_Surface *screen)
{
    int i, j;
#define P(x,y) ((Uint32*)((char*)screen->pixels + x*screen->format->BytesPerPixel + y*screen->pitch))

    for (i=40; i<50; i++) {
        for (j=40; j<50; j++) {
            *P(i,j) = SDL_MapRGB(screen->format, 255, 0, 255);
        }
    }
    for (i=80; i<90; i++) {
        for (j=40; j<50; j++) {
            *P(i,j) = SDL_MapRGB(screen->format, 255, 0, 255);
        }
    }
    for (i=62; i<68; i++) {
        for (j=60; j<80; j++) {
            *P(i,j) = SDL_MapRGB(screen->format, 10, 123, 233);
        }
    }
    for (i=40; i<90; i++) {
        for (j=95; j<100; j++) {
            *P(i,j) = SDL_MapRGB(screen->format, 123, 233, 10);
        }
    }
#undef P
}

int
main(void)
{
    int running = 1;
    int w = 140;
    int h = 140;
    SDL_Surface *screen;
    SDL_Event event;

    SDL_Init(SDL_INIT_VIDEO);

    screen = SDL_SetVideoMode(w, h, 32, SDL_HWSURFACE);


    while (running) {
        while(SDL_PollEvent(&event)) {
            if (event.type == SDL_QUIT) {
                running = 0;
            }
        }
        SDL_LockSurface(screen);
        draw(screen);
        SDL_UnlockSurface(screen);
        SDL_UpdateRect(screen, 0, 0, 0, 0);
    }

    SDL_Quit();
    return 0;
}

 

… macht das, wenn man ihn mit cc src.c -lSDL kompiliert:

 

sdl-test

Moritz war auch da. Nächste Woche noch ganz normal, dann zwei Wochen Pause, eine Woche ist Robert weg, dann sind Winterferien.

Keine Kommentare »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment