Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Hola Ray.

He estado intentando usar c++ con raylib pero me da algun problema,si instancio una clase sin puntero no hay problema pero si hago esto.

Jugador *jugador = new Jugador;

Me da error.

cc1plus.exe: warning: command line option '-std=c99' is valid for C/ObjC but not for C++

basicos22-imagenes-clases.cpp: In function 'int main()':

basicos22-imagenes-clases.cpp:39:14: warning: unused variable 'jugador2' [-Wunused-variable]

     Jugador *jugador2 = new Jugador;

C:\Users\usuario\AppData\Local\Temp\cc42TACp.o:basicos22-imagenes-clases.cpp:(.text.startup+0x68): undefined reference to `operator new(unsigned int)'

C:\Users\usuario\AppData\Local\Temp\cc42TACp.o:basicos22-imagenes-clases.cpp:(.text.startup+0xfe): undefined reference to `operator delete(void*, unsigned int)'

C:\Users\usuario\AppData\Local\Temp\cc42TACp.o:basicos22-imagenes-clases.cpp:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'

collect2.exe: error: ld returned 1 exit status


Supongo que sera porque habra que configurar el compilador para c++,en realidad no lo se pero me gustaria saber que se puede hacer para usar c++,sobre todo c++11,14 y 17.

 

Tienes que usar un compilador de C++. Yo te recomiendo utilizar Visual Studio.

ok.

Tengo otra pregunta,he estado haciendo una prueba separando el codigo en un archivo.c y otro.h,pero como no lo he hecho nunca con c pues estoy teniendo problemas.

El archivo.h tiene esto:

//prototipo de programacion de jugador

#ifndef JUGADOR_H

#define JUGADOR_H

#include "raylib.h"

typedef struct Jugador{

    int x,y;

    Color color;

    Texture2D imagen;

}Jugador;

void cargarTextura();

void actualizar();

void pintar();

void descargarTextura();

#endif


Y el archivo.c tiene esto:

//programacion de jugador

#include "jugador.h"

//jugador

Jugador jugador;

jugador.x = 280;

jugador.y = 380;

jugador.color = WHITE;

void cargarTextura(){

    jugador.imagen = LoadTexture("jugador.png");

}

void actualizar(){

    if(IsKeyDown(KEY_LEFT)){

        jugador.x -= 5;

    }else if(IsKeyDown(KEY_RIGHT)){

        jugador.x += 5;

    }

}

void pintar(){

    DrawTexture(jugador.imagen,jugador.x,jugador.y,jugador.color);

}

void descargarTextura(){

    UnloadTexture(jugador.imagen);

}


En el archivo del main incluyo el .h y intento llamar a alguna funcion pero me da error.

C:\Users\usuario\AppData\Local\Temp\ccgfCdVf.o:basico27-objeto.c:(.text.startup+0x37): undefined reference to `cargarTextura'

collect2.exe: error: ld returned 1 exit status


¿Que es lo que estoy haciendo mal?

Pues asi a primera vista no lo se... Para este tipo de consultas te recomiendo que entres al Discord de raylib.

ok.