Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Przejde do rzeczy: wyskakuje mi error:
error: expected initializer before ‘void’
Nie wiem co dodac ani gdzie...

Spoiler

#include <iostream>
using namespace std;
void ja() <--- Tutaj pokazuje error.
void ty()
int main()
{
ja;
ja;
ty;
ty;
}

void ja()
{
cout << "Entliczek pentliczek" << endl;
}

void ty()
{
cout << "Czerwony stoliczek" << endl;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

#include <iostream>
using namespace std;
void ja();
void ty();
int main()
{
ja;
ja;
ty;
ty;
}

void ja()
{
cout << "Entliczek pentliczek" << endl;
}

void ty()
{
cout << "Czerwony stoliczek" << endl;
}

Tylko o co chodzi z tym programem? Void może coś zainicjować ale nic nie wyświetli.

PS:Co do "ciała" to przecież ma je stworzone na dole. Na górze tylko wywołuje funkcję.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Oj przepraszam za błąd. Kod ma tak wyglądać.
#include <iostream>
using namespace std;
void ja();
void ty();
int main()
{
ja();
ja();
ty();
ty();
system("pause");
}

void ja()
{
cout << "Entliczek pentliczek" << endl;
}

void ty()
{
cout << "Czerwony stoliczek" << endl;
}

EDIT: Może moderator usunie mojego poprzedniego posta [1088]? Ktoś w przyszłości tu zajrzy i zrobi źle ;p

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 18.12.2010 o 16:22, ja33no napisał:

Tylko o co chodzi z tym programem? Void może coś zainicjować ale nic nie wyświetli.

PS:Co do "ciała" to przecież ma je stworzone na dole. Na górze tylko wywołuje funkcję.

Nie wywołuje tylko deklaruje, to jest tylko nagłówek. Wywołuje w mainie. A funkcja typu void może sobie robić wszystko czego zapragniesz, tylko nie przekazuje nic w wyniku.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam spory problem napisałem sobie program i kiedy odpalam exe to gra się zacina ;p. Oto kod:
#include <allegro.h>

void init();

void deinit();

int mapa_x = 0, mapa_y = 0;
BITMAP *teren = NULL;
BITMAP *bufor = NULL;

short int map[15][20] =
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,0,
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,0,
0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,
0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,
0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
0,3,3,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,3,3,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,
0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
};

void wys_mape()
{
int licznik_x, licznik_y;
for (licznik_x = 0; licznik_x < 20 ; licznik_x++)
{
for (licznik_y = 0; licznik_y < 15 ; licznik_y++)
{
blit(teren,bufor,
(map[licznik_y + mapa_y][licznik_x + mapa_x]%2) * 40,
(map[licznik_y + mapa_y][licznik_x + mapa_x]/2) * 40,
licznik_x * 40,licznik_y * 40,40,40);
}
}
};

class Cpostac
{
public:
int x,y;
short int kierunek, klatka;
};

Cpostac ludek;

volatile long speed = 0;
void increment_speed()
{
speed++;
}
END_OF_FUNCTION(increment_speed);
LOCK_VARIABLE(speed);
LOCK_FUNCTION(increment_speed);

int main()
{
init();

while(!key[KEY_ESC])
{
clear_to_color(screen, makecol(128,128,128));

BITMAP *ludekb = NULL;
BITMAP *bufor = NULL;
BITMAP *teren = NULL;


bufor = create_bitmap(800,600);
ludekb = load_bmp("ludek.bmp",default_palette);

ludek.x = 100;
ludek.y = 100;
ludek.klatka = 0;
ludek.kierunek = 0;
int frame = 0;

teren = load_bmp("teren.bmp",default_palette);

while( !key[KEY_ESC])
{
while( speed >0)
{
ludek.kierunek = 0;
if( key[KEY_LEFT]) { ludek.kierunek = 4; ludek.x-=2; }
if( key[KEY_RIGHT]) { ludek.kierunek = 2; ludek.x+=2; }
if( key[KEY_UP]) { ludek.kierunek = 1; ludek.y-=2; }
if( key[KEY_DOWN]) { ludek.kierunek = 3; ludek.y+=2; }
speed--;
frame++;
if( frame > 40) frame=0;
}
clear_to_color(bufor, makecol(150,150,150));
if( frame<20)
{
ludek.klatka = 0;
}
else if( frame>=20 && frame<40)
{
ludek.klatka = 1;
}
masked_blit( ludekb, bufor, ludek.kierunek*60 ,ludek.klatka*60 ,ludek.x, ludek.y, 60,60);
wys_mape();
blit( bufor, screen, 0,0,0,0, 800,600);
}
remove_int( increment_speed);
destroy_bitmap(ludekb);
destroy_bitmap(bufor);
destroy_bitmap(teren);
}

deinit();
return 0;
}
END_OF_MAIN()

void init()
{
int depth, res;
allegro_init();
set_color_depth(32);
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);

install_timer();
install_keyboard();
install_mouse();
install_int_ex(increment_speed, BPS_TO_TIMER(80));

}

void deinit()
{
clear_keybuf();
}

Dodam, że animacja ludzika działa bez zarzutu dopiero kiedy zrobiłem mapę coś poszło nie tak... plik teren ma 80x80 pikseli czyli 4 kafelki. 0-sciana 1-droga 2-woda 3-lawa.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

#include <allegro.h>

class Cpostac
{
public:
int x,y;
short int kierunek, klatka;
};

Cpostac ludek;

volatile long speed = 0;
void increment_speed()
{
speed++;
}
END_OF_FUNCTION(increment_speed);
LOCK_VARIABLE(speed);
LOCK_FUNCTION(increment_speed);

void init();

void deinit();

int mapa_x = 0, mapa_y = 0;
BITMAP *teren = NULL;
BITMAP *bufor = NULL;

short int map[15][20] =
{
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,0,
0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,0,
0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,
0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,
0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
0,3,3,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,3,3,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,
0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
};

void wys_mape()
{
int licznik_x, licznik_y;
for (licznik_x = 0; licznik_x < 20 ; licznik_x++)
{
for (licznik_y = 0; licznik_y < 15 ; licznik_y++)
{
blit(teren,bufor,
(map[licznik_y + mapa_y][licznik_x + mapa_x]%2) * 40,
(map[licznik_y + mapa_y][licznik_x + mapa_x]/2) * 40,
licznik_x * 40,licznik_y * 40,40,40);
}
}
};


int main()
{
init();

while(!key[KEY_ESC])
{
clear_to_color(screen, makecol(128,128,128));

BITMAP *ludekb = NULL;

bufor = create_bitmap(800,600);

teren = load_bmp("teren.bmp",default_palette);

ludekb = load_bmp("ludek.bmp",default_palette);

ludek.x = 100;
ludek.y = 100;
ludek.klatka = 0;
ludek.kierunek = 0;
int frame = 0;

while( !key[KEY_ESC])
{
while( speed >0)
{
ludek.kierunek = 0;
if( key[KEY_LEFT]) { ludek.kierunek = 4; ludek.x-=2; }
if( key[KEY_RIGHT]) { ludek.kierunek = 2; ludek.x+=2; }
if( key[KEY_UP]) { ludek.kierunek = 1; ludek.y-=2; }
if( key[KEY_DOWN]) { ludek.kierunek = 3; ludek.y+=2; }
speed--;
frame++;
if( frame > 40) frame=0;
}
clear_to_color(bufor, makecol(150,150,150));
if( frame<20)
{
ludek.klatka = 0;
}
else if( frame>=20 && frame<40)
{
ludek.klatka = 1;
}
masked_blit( ludekb, teren, ludek.kierunek*60 ,ludek.klatka*60 ,ludek.x, ludek.y, 60,60);

wys_mape();

blit( bufor, screen, 0,0,0,0, 800,600);
}
remove_int( increment_speed);
destroy_bitmap(ludekb);
destroy_bitmap(bufor);
}

deinit();
return 0;
}
END_OF_MAIN()

void init()
{
int depth, res;
allegro_init();
set_color_depth(32);
res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0);

install_timer();
install_keyboard();
install_mouse();
install_int_ex(increment_speed, BPS_TO_TIMER(40));

}

void deinit()
{
clear_keybuf();
}

Teraz nie ma błędu ale chłopka nie wyświetla. Dawałem w
masked_blit( ludekb, teren, ludek.kierunek*60 ,ludek.klatka*60 ,ludek.x, ludek.y, 60,60);
bufor dałem teraz teren i nadal nic.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam taką prośbę na przyszłość. By się czytelniej czytało, moglibyście wszystkie kody programu itd. pisać np. na stronę wklej.to lub wklej.org?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Co do mojego problemu to już sobie z nim poradziłem. Teraz mam problem z kolizjami. Nie chce mi się robić tego sposobem który znam czyli jak jeden prostokąt najedzie na drugi do się cofa xd. Słyszałem, że da się to zrobić jakoś na kolorach ale nie mam pomysłu i nic konstruktywnego nie znalazłem na necie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.12.2010 o 00:40, ja33no napisał:

Gotowe. Co o niej myślicie?

http://www.wrzuc.to/cP9ERATgap.wt


Poza tym że nie działa (nawet się nie włącza ^^), to jest niezłe :D
Notabene, jeśli chcesz to mogę ci przygotować nieco bardziej "dojrzałą" oprawę graficzną, gdybyś robił jakiś większy projekt.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.12.2010 o 00:58, ziptofaf napisał:

> Gotowe. Co o niej myślicie?
>
> http://www.wrzuc.to/cP9ERATgap.wt

Poza tym że nie działa (nawet się nie włącza ^^), to jest niezłe :D
Notabene, jeśli chcesz to mogę ci przygotować nieco bardziej "dojrzałą" oprawę graficzną,
gdybyś robił jakiś większy projekt.

Na razie robię to tylko w ramach treningu. Muszę teraz widocznie poćwiczyć robienie plików .exe xDDD.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.12.2010 o 16:12, zajacisko napisał:

Prosto z mostu: Dlaczego nie chce mi przeliczyc tak jak trzeba?
http://wklej.org/id/441043/


po co to:

const int kilometry = 100;

Zgaduję że problem jest tu:

const double litry = zuzycie * kilometry / 100;

i jak dla mnie jest to zbędne i wynik może podawać jako liczbę całkowitą, bo najpierw mnożysz przez 100 a potem dzielisz przez 100.

Najprościej wyświetlaj na ekranie wartość każdej zmiennej i w końcu znajdziesz gdzie się program wykłada.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować