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

[Rozdział 3] Wprawianie obiektu w ruch

Ostatnio zmodyfikowano 2017-04-19 14:31
Autor Wiadomość
Pungraf
Temat założony przez niniejszego użytkownika
[Rozdział 3] Wprawianie obiektu w ruch
» 2017-04-19 13:32:57
Witam, podczas kursu napotkałem pewien problem. Kod aplikacji wydaje mi się identyczny z tym podanym w kursie,
lecz kompilacja wyrzuca błędy z którymi nie mogę sobie poradzić ani znaleźć na nie odpowiedzi.
Oto mój kod:
C/C++
#include <SFML/Graphics.hpp>
#include <cmath>
#include <vector>
using namespace std;
using namespace sf;

struct RObiekt
{
    double x;
    double y;
   
    RObiekt( double f_x = 0.0, double f_y = 0.0 )
        : x( f_x )
         , y( f_y )
    { }
};

typedef vector < RObiekt > VObiektyT;
VObiektyT vObiekty;

vObiekty.push_back( RObiekt( 50, 50 ) );
vObiekty.push_back( RObiekt( 100, 250 ) );
vObiekty.push_back( RObiekt( 300, 100 ) );
vObiekty.push_back( RObiekt( 500, 500 ) );

int main()
{
    RenderWindow oknoAplikacji( VideoMode( 800, 600, 32 ), "Gra" );
   
    while( oknoAplikacji.isOpen() )
    {
        Event zdarzenie;
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == Event::Closed )
                 oknoAplikacji.close();
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Escape )
                 oknoAplikacji.close();
           
        }
       
        oknoAplikacji.display();
    }
    return 0;
}


Log z kompilacji wygląda następująco:

1>------ Build started: Project: Gra cwiczenie, Configuration: Debug Win32 ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(387,5): warning MSB8028: The intermediate directory (Debug\) contains files shared from another project (Konfiguracja SFML 2.0.vcxproj).  This can lead to incorrect clean and rebuild behavior.
1>main.cpp
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3927: '->': trailing return type is not allowed after a non-function declarator
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3484: syntax error: expected '->' before the return type
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C3613: missing return type after '->' ('int' assumed)
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C2371: 'vObiekty': redefinition; different basic types
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(21): error C2146: syntax error: missing ';' before identifier 'push_back'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3927: '->': trailing return type is not allowed after a non-function declarator
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3484: syntax error: expected '->' before the return type
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C3613: missing return type after '->' ('int' assumed)
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C2371: 'vObiekty': redefinition; different basic types
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(22): error C2146: syntax error: missing ';' before identifier 'push_back'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3927: '->': trailing return type is not allowed after a non-function declarator
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3484: syntax error: expected '->' before the return type
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C3613: missing return type after '->' ('int' assumed)
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C2371: 'vObiekty': redefinition; different basic types
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(23): error C2146: syntax error: missing ';' before identifier 'push_back'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3927: '->': trailing return type is not allowed after a non-function declarator
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3484: syntax error: expected '->' before the return type
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C3613: missing return type after '->' ('int' assumed)
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C2371: 'vObiekty': redefinition; different basic types
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(19): note: see declaration of 'vObiekty'
1>c:\users\johny\documents\visual studio 2017\projects\konfiguracja sfml 2.0\konfiguracja sfml 2.0\main.cpp(24): error C2146: syntax error: missing ';' before identifier 'push_back'
1>Done building project "Konfiguracja SFML 2.0.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Już przed kompilacją fragment kodu "vObiekty.push_back" jest podkreślony a informacja mówi:"This declaration has no storage class or type specifier"
Przepisywałem wszystko parę razy i nie mam już pomysłu co może być źle.
Z góry dziękuję za pomoc.
P-160273
Monika90
» 2017-04-19 14:31:12
C/C++
vObiekty.push_back( RObiekt( 50, 50 ) );
vObiekty.push_back( RObiekt( 100, 250 ) );
vObiekty.push_back( RObiekt( 300, 100 ) );
vObiekty.push_back( RObiekt( 500, 500 ) );
Instrukcje muszą być wewnątrz jakiejś funkcji, np. main.
P-160276
« 1 »
  Strona 1 z 1