Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 31
  1. #21
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    136
    Originariamente inviato da akiross
    oh oh oh
    sdl!
    sembrano davvero interessanti... quindi sono, come dire, una serie di librerie multimediali, cioe' una sorta di directx.

    Pero' noto che ad esmpio la grafica 3D e' fornita tramite OpenGL, quindi non sono altro che una unificazione di varie librerie, non una vera e propria ricostruzione.

    Cioe', anziche' avere le OGL come librerie grafiche, anziche' avere (ad esempio) le OpenAL come librerie audio, anziche' avere pippoPluto come librerie per le periferiche, abbiamo una libreria unica che le raccoglie insieme.

    Giusto?

    Sembrano davvero interessanti

    Danke mr.vajaski!
    Non è propio così: le sdl si basano su altre librerie solo per il supporto del 3d (opengl), ma per il resto fa tutto da se (joystick, gestione del cdrom...) o con alcune "sottolibrerie", ad esempio:
    sdl_mixer per l'audio
    sdl_net per il supporto di rete, vale a dire per il multiplaying.

  2. #22
    bhe ma comunque non sono una ricostruzione completa di tutto cio' che serve.

    ma in fondo, chi se ne frega. L'importante e' che vadano bene. In fondo anche se si appoggiano ad altre va bene (eh eh lo openGL poi... belle come sono, mi sarei offeso se non le usavano per il 3D

    Comunque basta avere un'interfaccia unificata che semplifica il lavoro che tutto va bene

    Ciuaz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  3. #23
    #include <stdio.h>
    #include <vga.h> // Utilizza VGALIB

    #define ALTO 10 /* Bordo superiore del campo */
    #define SINISTRA 10 /* Bordo sinistro del campo */
    #define BASSO 100 /* Bordo inferiore del campo */
    #define DESTRA 150 /* Bordo destro del campo */

    main()
    {
    int i; // Contatore di passi
    int dx=1; // Incremento orizzontale (+1 o -1)
    int dy=1; // Incremento verticale (+1 o -1)
    int x=(DESTRA + SINISTRA)/2; // Posizione orizzontale della pallina (partre dal centro)
    int y=(ALTO + BASSO)/2; // Posizione verticale della pallina (partre dal centro)

    vga_init(); // Inizializza la libreria
    vga_setmode(G320x200x256); // Entra in modalita' grafica

    // Disegna la cornice (i quattro lati)
    vga_drawline(SINISTRA,ALTO,DESTRA,ALTO); // Superiore
    vga_drawline(SINISTRA,BASSO,DESTRA,BASSO); // Inferiore
    vga_drawline(SINISTRA,ALTO,SINISTRA,BASSO); // Sinistro
    vga_drawline(DESTRA,ALTO,DESTRA,BASSO); // Destro
    vga_drawpixel(x,y); // Disegna la 'pallina' iniziale

    for(i=1;i<500;i++) // Ciclo di movimenti
    {
    vga_setcolor(0); // Disegna col colore dello sfondo (cancella)
    vga_drawpixel(x,y); // Cancella la pallina vecchia

    if(y==BASSO-1) // Se ha raggiunto il bordo basso
    {
    dy = -1; // rmbalza verso l'alto
    }
    if(y==ALTO+1) // Se ha raggiunto il bordo alto
    {
    dy = 1; // Rimbalza verso il basso
    }
    if(x==DESTRA-1) // Se ha raggiunto il bordo destro
    {
    dx = -1; // Rimbalza verso sinistra
    }
    if(x==SINISTRA+1) // Se ha raggiunto il bordo sinistro
    {
    dx = 1; // Rimbalza verso destra
    }

    x += dx; // Si sposta (asse X)
    y += dy; // Si sposta (asse Y)

    vga_setcolor(30); // Colore della pallina
    vga_drawpixel(x,y); // Disegna la pallina nella nuova posizione

    usleep (10000); // Pausa un centesimo di secondo
    }
    vga_setmode(TEXT); // Ritorna in modalita' testo
    }


    Questo è un file per capire magari un po meglio ste vga.h...l'ho scaricato un po di tempo fa da internet...io capisco sempre meglio con esempi...
    Guardalo poi dimmi qlc...fa solo rimbalz una pallina...
    Cmq dimmi qlc se ti è servito... poi se cerco nell'Hd devo avere anche qlc collegamento a docum o altri esempi...

    X Alexfin...ho guard un po le sdl...non ho capito cos'è la sdl_surface...un puntat allla struttura di cosa???hai un esempio semplice che lavora video da inviarmi??Se si mi fai proprio un favore...grazie...

  4. #24
    Se lo trovi l'esempio è meglio in c....xkè io utilizzo quello per il my progetto...grazie..

  5. #25
    Ho trovato un esempio e ho provato a compilarlo come diceva prima qlc con gcc `sdl-config --cflags --static-libs` sdl2.o progr
    ma mi dice gcc-I/usr/include/SDL no such file or directory...eppure c'è a quel path... secondo voi???K casino ste compilazioni...

  6. #26
    funziaaaaaaaaaaa

    finalemte sono riuscito a disegnare una linea!!!!

    io happy!!!

    grazie mille!


    ps: ke sappiate c'è una funzione simile ad usleep() x il c++?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  7. #27
    ho apportato una piccola modifica al codice :

    ora non è piu la pallina a rimbalzare ma sembra il gioco snake

    non ho fatto altro che salvare le ultime dieci posizioni del pixel in un array di una struct che contiene le due coordinate x e y, poi dopo dieci pixel (la lunghezza dello snake) con la funzione

    vga_drawpixel()disegno un pixel con lo stesso colore dello schermo utilizzando le coordinate in memoria , xo non funziona molto bene perchè ogni 10 pixel il serpente fa una cagatina e ne lascia indietro uno!!!



    ora ci sto studiando... cmq ecco il codice:

    #include <iostream.h>
    #include <vga.h> // Utilizza VGALIB
    #include <unistd.h>
    #include <fstream.h>

    #define ALTO 10 /* Bordo superiore del campo */
    #define SINISTRA 10 /* Bordo sinistro del campo */
    #define BASSO 100 /* Bordo inferiore del campo */
    #define DESTRA 150 /* Bordo destro del campo */

    struct coordinate{ //creo una struct che memorizza due dati la x e la y della pallina

    int xp;
    int yp;

    };

    coordinate mem[10]; //creo un 'array' in grado di memorizzarmi 11 coordinate

    main()
    {

    fstream scrivi;

    scrivi.open("dati",ios:ut);


    int i; // Contatore di passi
    int dx=1; // Incremento orizzontale (+1 o -1)
    int dy=1; // Incremento verticale (+1 o -1)
    int x=(DESTRA + SINISTRA)/2; // Posizione orizzontale della pallina (partre dal centro)
    int y=(ALTO + BASSO)/2; // Posizione verticale della pallina (partre dal centro)
    int cont=0;

    vga_init(); // Inizializza la libreria
    vga_setmode(G320x240x256); // Entra in modalita' grafica

    // Disegna la cornice (i quattro lati)
    vga_drawline(SINISTRA,ALTO,DESTRA,ALTO);// Superiore
    vga_drawline(SINISTRA,BASSO,DESTRA,BASSO); // Inferiore
    vga_drawline(SINISTRA,ALTO,SINISTRA,BASSO); // Sinistro
    vga_drawline(DESTRA,ALTO,DESTRA,BASSO);// Destro
    vga_drawpixel(x,y); // Disegna la 'pallina' iniziale

    for(i=1;i<500;i++) // Ciclo di movimenti
    {

    if(y==BASSO-1) // Se ha raggiunto il bordo basso
    {
    dy = -1; // rmbalza verso l'alto
    }
    if(y==ALTO+1) // Se ha raggiunto il bordo alto
    {
    dy = 1; // Rimbalza verso il basso
    }
    if(x==DESTRA-1) // Se ha raggiunto il bordo destro
    {
    dx = -1; // Rimbalza verso sinistra
    }
    if(x==SINISTRA+1) // Se ha raggiunto il bordo sinistro
    {
    dx = 1; // Rimbalza verso destra
    }

    x += dx; // Si sposta (asse X)
    y += dy; // Si sposta (asse Y)

    vga_setcolor(30); // Colore della pallina
    vga_drawpixel(x,y); // Disegna la pallina nella nuova posizione

    if(cont >= 10)
    {
    cont=0;
    }

    mem[cont].xp=x;
    mem[cont].yp=y;

    cont = cont +1;


    vga_setcolor(0);
    vga_drawpixel(mem[cont].xp,mem[cont].yp);


    scrivi<<"xp = "<<mem[cont].xp<<" yp = "<<mem[cont].yp<<"\t\t"<<cont<<endl;
    scrivi<<"x = "<<x<<" y = "<<y<<endl<<endl;

    usleep (100); // Pausa un centesimo di secondo
    }
    scrivi.close();
    vga_setmode(TEXT); // Ritorna in modalita' testo
    }


    ho aggiunto anche un output su file per capire un po meglio il discorso delle coordinate...

    ps ma io quando eseguo il programma vedo 4 finestre con le stesse cose è perchè ho la 1024-768? come faccio a mettere la 320*240 su linux?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  8. #28
    4finestre??Strano...a me dava direttamente segmentation fault...cmq probab è x quello k pensi tu...sono cont che t è servito il my codice...se t servisse altro chiedi pure...:metallica

  9. #29
    we raga!

    sto provando ad usare le librerie vga, e non riesco nemmeno a fare andare il primo elementare programma:

    svgalib: Cannot get I/O permissions.

    cosa significa? come risolvere?

    grazie
    ciauz
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  10. #30
    ok, ho risolto, adesso pero' devo eseguire il programma da root...
    (il che non e' una scelta molto felice)

    ho letto da qualche parte che mi conviene fare un gruppo svga per metterci gli utenti che usano queste librerie, ma che permessi gli do? come lo imposto?

    su gentoo c'e' un gruppo chiamato video nel quale c'e' solo root, e' possibile che sia quello?

    grazie
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.