PONG przy użyciu biblioteki windows.h

0

Cześć !
Mam do was takie pytanie próbowaliście może napisać kiedyś ponga przy użyciu biblioteki windows.h ?
Nie mam jeszcze dokładnego planu jak to ma działać nie znam za bardzo komend, ma ktoś może jakiś ciekawy tutorial, który pokazuje jak tworzyć dwuwymiarowe elementy wykorzystując właśnie tą biblioteke ?

1

Nie polecam pisać w surowym WinApi. Jest to męczarnia.

Zamiast tego, należy sobie wybrać jedną z popularnych bibliotek ( MFC, Qt, wxWidgets lub cokolwiek innego ) lub... zainteresować się .NET i C++/CLI albo C#.

0
4ggr35510n napisał(a)

Nie polecam pisać w surowym WinApi. Jest to męczarnia.

Piszesz tak, jakby WinAPI nie miało żadnych zalet, a jest ich dużo; Oczywiście wadą jest długość kodu, bo potrafi być znacznie dłuższy od wygenerowanego z VCL, ale ma się pełną kątrolę nad aplikacją, ta działa bardzo szybko i przy okazji zajmuje bardzo mało miejsca na dysku;

Żeby jednak sprawnie pisać w surowym WinAPI trzeba mieć dużą wiedzę i umiejętności;

0

Dobra zdecydowałem się już na SFML próbuję się go nauczyć z pewnej strony jednak nie idzie tak łatwo jakby się wydawało.
Biblioteka na pewno mi działa bo sprawdzałem sposobem pokazanym pod koniec tego filmiku zreszta w taki sam sposob instalowalem biblioteke

a to kurs z któego korzystam

http://cpp0x.pl/kursy/Kurs-SFML-C++/Obsluga-zdarzen-klawiatura-mysz-i-inne/329

wklejam do kompilatora ten kod, który już rzekomo powinien działać, mignąć jakimś oknem czy coś ...

 #include <SFML/Window.hpp>

int main()
{
    sf::Window oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Kurs SFML - http://cpp0x.pl" );
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
            
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
            
            if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Middle )
                 oknoAplikacji.Close();
            
        }
        oknoAplikacji.Display();
    }
    return 0;
}

a tu wyskakuje taki szereg błędów w Outpucie:

1>------ Build started: Project: sfmlnowy, Configuration: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall sf::~Window(void)" (??1Window@sf@@UAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall sf::Display(void)" (?Display@Window@sf@@QAEXXZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall sf::Close(void)" (?Close@Window@sf@@QAEXXZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall sf::GetEvent(class sf::Event &)" (?GetEvent@Window@sf@@QAE_NAAVEvent@2@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall sf::IsOpened(void)const " (?IsOpened@Window@sf@@QBE_NXZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall sf::Window(class sf::VideoMode,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned long,struct sf::WindowSettings const &)" (??0Window@sf@@QAE@VVideoMode@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KABUWindowSettings@1@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall sf::VideoMode(unsigned int,unsigned int,unsigned int)" (??0VideoMode@sf@@QAE@III@Z) referenced in function _main
1>C:\Documents and Settings\admin\moje dokumenty\visual studio 2010\Projects\sfmlnowy\Debug\sfmlnowy.exe : fatal error LNK1120: 7 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

0

takie błędy wyskakują przeważnie w momencie gdy spartaczysz coś przy dodawaniu bibliotek linkerowi - to tak na przyszłość. Teraz druga rada na przyszłość zanim klepniesz jakiś temat na forum spróbowałbyś przeszukać sieć (powinien wystarczyć serwis, z którego prawdopodobnie się uczysz) bo być może na całym świecie nie jesteś jedyny z takim problemem. Sprawdź czy ta dyskusja ci pomoże.

0

Cztery proste kroki.

  1. Dodanie katalogu z include w opcjach / lub przerzucenie do odpowiedniego katalogu w Visualu.
  2. Include w projekcie
  3. Dodanie lib w w opcjach linkera->input
  4. AFAIK potrzeba jeszcze wrzucić pliki dll do katalogu projektu
0
Hixohe napisał(a):
  1. AFAIK potrzeba jeszcze wrzucić pliki dll do katalogu projektu

ale w które dokłądnie miejsce ?

Bo wszystkie z powyższych kroków wykonalem tak jak tu:

z tym, że zamiast system dałem window biblioteka system mi działa jak robie tak jak na filmiku a window nie :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1