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

[SFML 1.6] Problem z Image i Sprite

Ostatnio zmodyfikowano 2013-01-05 15:00
Autor Wiadomość
Menos
Temat założony przez niniejszego użytkownika
[SFML 1.6] Problem z Image i Sprite
» 2013-01-05 13:05:24
Witam

Mam problem z zainicjalizowaniem sf::Image i sf::Sprite

Mam klase :
C/C++
#ifndef WINDOWMANAGER_H
#define WINDOWMANAGER_H
#include "Mapa.h"
#include <cstdlib>
#include <iostream>
#include <ctime>
#include <cstdio>
#include <conio.h>
#include <time.h>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
using namespace sf;
class WindowManager
{
public:
    sf::Image ki1, ki3, ki2, ki4, ki5, ki6, ki7, ki8;
    sf::Sprite k1, k3, k2, k4, k5, k6, k7, k8;
   
    ki1.LoadFromFile( "chodnik.png" );
    ki2.LoadFromFile( "mario.png" );
    ki3.LoadFromFile( "cos.png" );
    ki4.LoadFromFile( "tiles10.png" );
    ki5.LoadFromFile( "ex.png" );
    ki6.LoadFromFile( "start.png" );
    ki7.LoadFromFile( "end.png" );
    ki8.LoadFromFile( "instr.png" );
   
   
    k2.SetScale( 0.125, 0.125 );
   
    k1.SetImage( ki1 );
    k2.SetImage( ki2 );
    k3.SetImage( ki3 );
    k4.SetImage( ki4 );
    k5.SetImage( ki5 );
    k6.SetImage( ki6 );
    k7.SetImage( ki7 );
    k8.SetImage( ki8 );
    WindowManager();
    virtual ~WindowManager();
    void wyswietl_menu( RenderWindow & Okno );
    void rysuj_mape( Mapa * mapa, RenderWindow & Okno );
    void baw_sie( Gracz * gracz, RenderWindow & Okno );
    void ucz_sie( Gracz * gracz, RenderWindow & Okno );
    void rob_sciage( Gracz * gracz, RenderWindow & Okno );
    bool pause( RenderWindow & Okno );
   
   
protected:
private:
   
   
};
[ \c ode ]

I wywala mi bledy podczas kompilacji
[ code src = "C++" ]
include\WindowManager.h | 20 | error: ISO C++forbids declaration of 'ki1' with no type |
include\WindowManager.h | 20 | error: expected ';' before '.' token |
include\WindowManager.h | 21 | error: ISO C++forbids declaration of 'ki2' with no type |
include\WindowManager.h | 21 | error: expected ';' before '.' token |
include\WindowManager.h | 22 | error: ISO C++forbids declaration of 'ki3' with no type |
include\WindowManager.h | 22 | error: expected ';' before '.' token |
include\WindowManager.h | 23 | error: ISO C++forbids declaration of 'ki4' with no type |
include\WindowManager.h | 23 | error: expected ';' before '.' token |
include\WindowManager.h | 24 | error: ISO C++forbids declaration of 'ki5' with no type |
include\WindowManager.h | 24 | error: expected ';' before '.' token |
include\WindowManager.h | 25 | error: ISO C++forbids declaration of 'ki6' with no type |
include\WindowManager.h | 25 | error: expected ';' before '.' token |
include\WindowManager.h | 26 | error: ISO C++forbids declaration of 'ki7' with no type |
include\WindowManager.h | 26 | error: expected ';' before '.' token |
include\WindowManager.h | 27 | error: ISO C++forbids declaration of 'ki8' with no type |
include\WindowManager.h | 27 | error: expected ';' before '.' token |
include\WindowManager.h | 30 | error: ISO C++forbids declaration of 'k2' with no type |
include\WindowManager.h | 30 | error: expected ';' before '.' token |
include\WindowManager.h | 32 | error: ISO C++forbids declaration of 'k1' with no type |
include\WindowManager.h | 32 | error: expected ';' before '.' token |
include\WindowManager.h | 33 | error: ISO C++forbids declaration of 'k2' with no type |
include\WindowManager.h | 33 | error: expected ';' before '.' token |
include\WindowManager.h | 34 | error: ISO C++forbids declaration of 'k3' with no type |
include\WindowManager.h | 34 | error: expected ';' before '.' token |
include\WindowManager.h | 35 | error: ISO C++forbids declaration of 'k4' with no type |
include\WindowManager.h | 35 | error: expected ';' before '.' token |
include\WindowManager.h | 36 | error: ISO C++forbids declaration of 'k5' with no type |
include\WindowManager.h | 36 | error: expected ';' before '.' token |
include\WindowManager.h | 37 | error: ISO C++forbids declaration of 'k6' with no type |
include\WindowManager.h | 37 | error: expected ';' before '.' token |
include\WindowManager.h | 38 | error: ISO C++forbids declaration of 'k7' with no type |
include\WindowManager.h | 38 | error: expected ';' before '.' token |
include\WindowManager.h | 39 | error: ISO C++forbids declaration of 'k8' with no type |
include\WindowManager.h | 39 | error: expected ';' before '.' token |
||=== Build finished: 34 errors, 0 warnings ===|
[ \c ode ]
P-73021
crash
» 2013-01-05 13:55:22
Poniższe instrukcje

C/C++
ki1.LoadFromFile( "chodnik.png" );
ki2.LoadFromFile( "mario.png" );
ki3.LoadFromFile( "cos.png" );
ki4.LoadFromFile( "tiles10.png" );
ki5.LoadFromFile( "ex.png" );
ki6.LoadFromFile( "start.png" );
ki7.LoadFromFile( "end.png" );
ki8.LoadFromFile( "instr.png" );


k2.SetScale( 0.125, 0.125 );

k1.SetImage( ki1 );
k2.SetImage( ki2 );
k3.SetImage( ki3 );
k4.SetImage( ki4 );
k5.SetImage( ki5 );
k6.SetImage( ki6 );
k7.SetImage( ki7 );
k8.SetImage( ki8 );

umieść w metodzie. Wnętrze klasy służy do deklaracji pól i metod, nie do zwykłego wykonywania kodu - do tego celu służą metody, a właściwie ich ciała.
P-73029
kubawal
» 2013-01-05 13:58:15
Dokładnie to w konstruktorze.
P-73030
Menos
Temat założony przez niniejszego użytkownika
» 2013-01-05 14:28:11
C/C++
#include "WindowManager.h"
#include<iostream>
using namespace std;
using namespace sf;
WindowManager::WindowManager()
{
    cout << "Stworzony WindowManager" << endl;
    Image ki1, ki3, ki2, ki4, ki5, ki6, ki7, ki8, ki9;
   
    ki1.LoadFromFile( "chodnik.png" );
    ki2.LoadFromFile( "mario.png" );
    ki3.LoadFromFile( "cos.png" );
    ki4.LoadFromFile( "tiles10.png" );
    ki5.LoadFromFile( "ex.png" );
    ki6.LoadFromFile( "start.png" );
    ki7.LoadFromFile( "end.png" );
    ki8.LoadFromFile( "instr.png" );
    ki9.LoadFromFile( "wykladowca.png" );
    Sprite k1, k3, k2, k4, k5, k6, k7, k8, k9;
   
    k2.SetScale( 0.125, 0.125 );
   
    k1.SetImage( ki1 );
    k2.SetImage( ki2 );
    k3.SetImage( ki3 );
    k4.SetImage( ki4 );
    k5.SetImage( ki5 );
    k6.SetImage( ki6 );
    k7.SetImage( ki7 );
    k8.SetImage( ki8 );
    k9.SetImage( ki9 );
}


Niestety nie rozumie tego tez...
Przy wowolaniu innej metody klasy WindowManager i tak wyskakuje :

C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp||In member function 'int WindowManager::wyswietl_menu(sf::RenderWindow&)':|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|46|error: 'k6' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|47|error: 'k7' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|48|error: 'k3' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|53|error: 'k1' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|55|error: 'ki1' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|57|error: 'k2' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|59|error: 'ki2' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|63|error: 'ki3' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp||In member function 'void WindowManager::rysuj_mape(Mapa*, sf::RenderWindow&)':|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|157|error: 'k1' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|163|error: 'k3' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|168|error: 'k4' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|173|error: 'k2' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|180|error: 'k5' was not declared in this scope|
C:\Users\Filip\Desktop\polibudafr\gra\nowagra\kod gry\src\WindowManager.cpp|185|error: 'k6' was not declared in this scope|
||=== Build finished: 14 errors, 0 warnings ===|
P-73032
kubawal
» 2013-01-05 15:00:25
Definicje sprite'ów i image'ów umieszczasz w private!
Czytałeś w ogóle o używaniu klas?
P-73033
« 1 »
  Strona 1 z 1