0

目前,我正在学习如何在我的学位课程中创建游戏(低水平)。我在 Ubuntu mate 16.04,Codeblocks 13.12 上编程,这发生了:

-------------- Build: Debug in s04 (compiler: GNU GCC Compiler)---------------

g++  -o bin/Debug/s04 obj/Debug/main.o obj/Debug/Pantalla.o   
obj/Debug/main.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

我必须创建一个新窗口,我的“游戏”将在其中运行......(我添加代码)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "Pantalla.h"

//Ej.1
struct BalaRep
{
    int x;
    int y;
    int vx;
    int vy;
};
typedef struct BalaRep * Bala;

//Ej.2
Bala crea_bala ( double x, double y, double vx, double vy )
{
    Bala b=malloc(sizeof(struct BalaRep));
    b->x = x;
    b->y = y;
    b->vx = vx;
    b->vy = vy;
    return b;
}

//Ej.3
void libera_bala( Bala b )
{
    free(b);
}

//Ej.4
void mueve_bala( Bala b )
{
    b->x = (b->x)+ (b->vx);
    b->y = (b->y)+ (b->vy);
}

//Ej.5
void dibuja_bala( Bala b )
{
    Pantalla_DibujaRectangulo( b->x, b->y, 7, 7);
}

//Ej.6 
/*
double get_x_bala( Bala b )
{
    return b->x;
}
*/

//Ej.7
/*
double get_y_bala( Bala b )
{
    return b->y;
}
*/
int main( int argc, char *argv[] )
{
    Pantalla_Crea("Ejemplo 3", 640,480);
    Pantalla_ColorTrazo(255,0,0, 255);
    int x = 280;
    int y = 425;
    int x2 = 200;
    int y2 = 100;
    int vx2 = 5;
    Bala b = NULL;

    while ( Pantalla_Activa() )
    {
        //Crear bala
        if (Pantalla_TeclaPulsada(SDL_SCANCODE_SPACE))
        {
            libera_bala(b);
            b=NULL;
            b=crea_bala(x,y,0,-10);
        }

        //Movimiento del rectángulo
        if (Pantalla_TeclaPulsada(SDL_SCANCODE_RIGHT))
        {
            x = x + 5;
        }
        if (Pantalla_TeclaPulsada(SDL_SCANCODE_LEFT))
        {
            x = x - 5;
        }
        /*if (Pantalla_TeclaPulsada(SDL_SCANCODE_UP))
        {
            y = y - 5;
        }
        if (Pantalla_TeclaPulsada(SDL_SCANCODE_DOWN))
        {
            y = y + 5;
        }*/

        //Bordes no-salir
        if (x > 640-80)
        {
            x = 640 - 80;
        }
        if (x < 0)
        {
            x = 0;
        }
        if (y > 480-40)
        {
            y = 480 - 40;
        }
        if (y < 0)
        {
            y = 0;
        }

        //Mov enemigo
        x2 = x2 + vx2;

        //Bordes no-salir enemigo
        if (x2 > 640-80)
        {
            x2 = 640 - 80;
            vx2 = vx2 * (-1);
        }
        if (x2 < 0)
        {
            x2 = 0;
            vx2 = vx2 * (-1);
        }


        //BALA
        if (b!=NULL)
        {
            mueve_bala(b);
        }

        if ((b!=NULL) && ((b->y) <= 0))
        {
            libera_bala(b);
            b=NULL;
        }

        Pantalla_DibujaRellenoFondo( 255,255,255, 255 );
        Pantalla_DibujaRectangulo( x, y, 80,40 );
        Pantalla_DibujaRectangulo( x2, y2, 80,40 );
        if (b!=NULL)
        {
            dibuja_bala(b);
        }
        Pantalla_Actualiza();
        Pantalla_Espera(40);
    }
    Pantalla_Libera();
    return 0;
    }

老师给我们有一个文件可以正常运行。此外,我的同学在他的笔记本电脑上运行相同的代码(我添加的)并且它可以工作。对不起,我知道我的英语很差...

4

1 回答 1

0

显然,目标文件不兼容是因为您的构建过程被破坏,或者您的教授只是给您编译的目标文件,因为它与您的实现(即编译器、操作系统、体系结构)不兼容 ABI。

于 2019-02-21T11:24:32.240 回答