Dobrý den,
už nějaký ten rok se snažím programovat v c (pouze moje hobby :) ) a ted se snažím naprogramovat multiplayer. Nicméně nikdy jsem osobně nedoinstalovával potřebné knihovny jako je SDL_Image atd. A právě tady zečíná můj problém. Chtěl bych pouzit knihovny na multiplayer ze stranky enet.bespin.org/ jenze kdyz si na jejich stránkách dám manual jak na to, tak jsem nepochopil, kam vlastně ty knihovny nakopírovat. + vsechny potřebné úkony k běhu knihovny.
Mohli byste mi prosím vysvetlit kam se vlastně takový knihovny ve windows 7 kopírují?
+ všechny potřebné úkony k jejich běhu.
pro informaci takto vypada program, který se snažim zkompilovat (také viz http://enet.bespin.org/Tutorial.html ).
a právě řádek #include <enet/enet.h> mi dělá problémy. Píše mi to "fatal error: enet/enet.h: No such file or directory"
+ nějaký PATH bo co se tam musí přidat. xD + ješte nerozumím jak je to v Makefile.txt, když přidávám novou knihovnu. atd..
Předem děkuji za každou odpověd :)
#include <stdio.h>
#include <string.h>
#include <enet/enet.h>
int main (int argc, char* argv[])
{
ENetHost *client;
ENetAddress address;
ENetPeer *peer;
ENetEvent event;
int x = 0, y = 0;
int xx, yy;
char data[10];
char message[1024];
int serviceResult;
printf("Starting client\n");
if(enet_initialize() != 0)
{
printf("Error initialising enet\n");
exit(1);
}
client = enet_host_create(NULL, 1, 2, 57600 / 8, 14400 / 8);
if(!client)
{
printf("Could not create client host.\n");
exit(1);
}
enet_address_set_host(&address, "192.168.1.11");
address.port = 4321;
peer = enet_host_connect(client, &address, 2, 0);
if(peer == NULL)
{
printf("No available peers for initiating an ENet connection.\n");
exit(1);
}
/* Try to connect to server within 5 seconds */
if(enet_host_service(client, &event, 5000) > 0
&& event.type == ENET_EVENT_TYPE_CONNECT)
{
printf("Connection to server succeeded.\n");
}
else
{
enet_peer_reset(peer);
printf("Connection to server failed.\n");
exit(1);
}
while(1)
{
serviceResult = 1;
while(serviceResult > 0)
{
serviceResult = enet_host_service (client, &event, 0);
if(serviceResult > 0)
{
switch(event.type)
{
case ENET_EVENT_TYPE_CONNECT:
printf("A new client connected from %x:%u.\n",
event.peer->address.host,
event.peer->address.port);
event.peer->data = (void*)"New User";
break;
case ENET_EVENT_TYPE_RECEIVE:
sscanf((const char*)event.packet->data, "%d %d", &x, &y);
printf ("data = '%s', x = %d, y = %d, delka paketu = %u, od %s na kanalu %u.\n",
event.packet->data, x, y, event.packet->dataLength, event.peer->data, event.channelID);
enet_packet_destroy (event.packet);
break;
case ENET_EVENT_TYPE_DISCONNECT:
printf("%s disconected.\n", event.peer->data);
break;
}
}
else if(serviceResult < 0)
{
printf("Error with servicing the client");
exit(1);
}
}
x += 1;
y += 1;
sprintf(message, "%d %d",x , y);
if(x > 1000) break;
if(strcmp(message, "x = 1000, y = 1000") == 0 || strcmp(message, "quit") == 0)
{
break;
}
if(strlen(message) > 0)
{
ENetPacket *packet = enet_packet_create(message, strlen(message) + 1, ENET_PACKET_FLAG_RELIABLE);
enet_peer_send(peer, 0, packet);
}
}
enet_peer_disconnect (peer, 0);
while(enet_host_service(client, &event, 3000) > 0)
{
switch(event.type)
{
case ENET_EVENT_TYPE_RECEIVE:
enet_packet_destroy (event.packet);
break;
case ENET_EVENT_TYPE_DISCONNECT:
printf("Disconnection succeeded.\n");
break;
}
}
enet_host_destroy(client);
enet_deinitialize();
return 0;
}