Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

wyświetlanie daty

Ostatnio zmodyfikowano 2013-01-02 15:07
Autor Wiadomość
MeGameOne
Temat założony przez niniejszego użytkownika
wyświetlanie daty
» 2013-01-02 13:07:44
Witam wszystkich .
Zająłem sie nowym projektem, a mianowicie programem wyświetlającym date.
Mam pewien problem z kodem i przypominam ze dopiero zacząłem pracę w SDL.

PROBLEM TKWI TU :

C/C++
if( dd == 02 )
{
    SDL_BlitSurface( d1, & d1Dane, OBRAZ, & d1Cel );
}

if( mm == 01 )
{
    SDL_BlitSurface( m1, & m1Dane, OBRAZ, & m1Cel );
}

if( rr == 2013 )
{
    SDL_BlitSurface( r1, & r1Dane, OBRAZ, & r1Cel );
}

A to cały  kod:

C/C++
#include <SDL/SDL.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include "Windows.h"

////////////////////////////////////////////////////////////////////////////////////

SDL_Surface * OBRAZ = NULL;
SDL_Surface * d1 = NULL;
SDL_Surface * m1 = NULL;
SDL_Surface * r1 = NULL;
SDL_Surface * tlo = NULL;

////////////////////////////////////////////////////////////////////////////////////
SDL_Event zdarzenie;
SDL_Rect d1Dane;
SDL_Rect d1Cel;
SDL_Rect m1Dane;
SDL_Rect m1Cel;
SDL_Rect r1Dane;
SDL_Rect r1Cel;
SDL_Rect tloDane;
SDL_Rect tloCel;

Uint8 * keystate = SDL_GetKeyState( NULL );
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
bool wyjscie = false;

////////////////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
    //////////////////////
    SYSTEMTIME d, m, r;
   
    SetLocalTime( & d );
    SetLocalTime( & m );
    SetLocalTime( & r );
   
    int dd, mm, rr;
   
    dd = d.wDay;
    mm = m.wMonth;
    rr = r.wYear;
   
    //OBRAZ
    //////////////////////
   
    SDL_Init( SDL_INIT_EVERYTHING );
   
    OBRAZ = SDL_SetVideoMode( 1440, 900, 32, SDL_SWSURFACE | SDL_FULLSCREEN );
   
    SDL_WM_SetCaption( "MeGameOne", NULL );
   
    ////////////////////////////////////////////////////////////////////////////////////
    tlo = SDL_LoadBMP( "tlo/megameone.bmp" ); //TLO
   
    d1 = SDL_LoadBMP( "ikony/02.bmp" ); //OBRAZEK1 DZIEN
    m1 = SDL_LoadBMP( "ikony/01.bmp" ); //OBRAZEK2 MIECIAC
    r1 = SDL_LoadBMP( "ikony/2013.bmp" ); //OBRAZEK3 ROK
   
   
    //POZYCJA I WIELKOSC
    ////////////////////////////////////////////////////////////////////////////////////
    tloDane.w = 2000;
    tloDane.h = 2000;
    tloCel.x = 0;
    tloCel.y = 0;
   
    d1Dane.w = 200;
    d1Dane.h = 50;
    d1Cel.x = 300;
    d1Cel.y = 50;
   
    m1Dane.w = 200;
    m1Dane.h = 50;
    m1Cel.x = 300;
    m1Cel.y = 150;
   
    r1Dane.w = 200;
    r1Dane.h = 50;
    r1Cel.x = 300;
    r1Cel.y = 250;
   
    ////////////////////////////////////////////////////////////////////////////////////
   
    //GLOWNA PETLA
    ////////////////////////////////////////////////////////////////////////////////////
   
    while( !wyjscie )
    {
       
        SDL_BlitSurface( tlo, & tloDane, OBRAZ, & tloCel );
       
       
        if( dd == 02 )
        {
            SDL_BlitSurface( d1, & d1Dane, OBRAZ, & d1Cel );
        }
       
        if( mm == 01 )
        {
            SDL_BlitSurface( m1, & m1Dane, OBRAZ, & m1Cel );
        }
       
        if( rr == 2013 )
        {
            SDL_BlitSurface( r1, & r1Dane, OBRAZ, & r1Cel );
        }
       
       
       
        while( SDL_PollEvent( & zdarzenie ) )
        {
           
           
            if( zdarzenie.type == SDL_QUIT )
            {
                wyjscie = false;
            }
           
            if( keystate[ SDLK_ESCAPE ] )
            {
                wyjscie = true;
            }
           
           
        };
        ////////////////////////////////////////////////////////////////////////////////////
       
        SDL_Flip( OBRAZ );
        SDL_Flip( d1 );
        SDL_Flip( m1 );
        SDL_Flip( r1 );
        SDL_Flip( tlo );
       
       
       
       
       
    }
   
    SDL_Quit();
   
    return 0;
   
}



Oczywiście to tylko początek.
Z góry dzięki za odpowiedzi
P-72682
Mike148
» 2013-01-02 14:23:34
1. Jaki jest ten problem. Daj error
2. Kod w znacznikach cpp
3. Na pierwszy rzut oka :

C/C++
if( zdarzenie.type == SDL_QUIT )
{
    wyjscie = false; // == true
}

SDL_Flip(); //Dajesz tylko screen o ile się nie myle

4.Nie prościej jest ci datę renderować z TTF ?
P-72694
pekfos
» 2013-01-02 14:24:31
P-72695
MeGameOne
Temat założony przez niniejszego użytkownika
» 2013-01-02 14:35:13
Nie ma zadnego errora, błąd  polega na tym ze warunki nie chcą sie spelnic
P-72697
Mike148
» 2013-01-02 14:41:03
MSDN nie gryzie :
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx

Powinienieś użyć
C/C++
void WINAPI GetLocalTime(
_Out_ LPSYSTEMTIME lpSystemTime
);

C/C++
#include <windows.h>
#include <stdio.h>

void main()
{
    SYSTEMTIME st, lt;
   
    GetSystemTime( & st );
    GetLocalTime( & lt );
   
    printf( "The system time is: %02d:%02d\n", st.wHour, st.wMinute );
    printf( " The local time is: %02d:%02d\n", lt.wHour, lt.wMinute );
}

I popatrz sobie jakie wartości są zwracane do poszczególnych zmiennych i wtedy twórz warunki ;)
Link do opisu funkcji na górze.
P-72700
MeGameOne
Temat założony przez niniejszego użytkownika
» 2013-01-02 14:48:14
Ja mam to zrobione na tej stronie pokazują .Poprobuje jeszcze .
P-72702
Mike148
» 2013-01-02 15:00:30
Ty ustawiasz datę, a nie pobierasz - Set, a Get to drobna różnica. Po co wywołujesz to 3 razy. Jakbyś popatrzył na budowę struktury to SYSTEMTIME to byś zobaczył, że masz tam i dzień, i rok, i miesiąc, i godzinę.
P-72708
MeGameOne
Temat założony przez niniejszego użytkownika
» 2013-01-02 15:07:01
Dzieki wielkie.  Set i get mi sie pomyliło , bo z głowy pisałem:-)
Temat do zamknięcia.
Pozdro
P-72712
« 1 »
  Strona 1 z 1