Autor
|
Tema: el programa dejó de funconar correctamente por un problema. (Leído 10,506 veces)
|
sanxez1
Desconectado
Mensajes: 36
|
no hice lo de los couts, pero no se a que se refieren
|
|
|
En línea
|
|
|
|
Poyoncio
|
Tu problema es que no sabes en que codigo estas. Iostream es una libreria de C++ y stdlib y stdio de C, por tu code parece que estas en C porque pones printf .... asi que crea un archivo y ponle el code en C que te he puesto y lo guardas como fichero.c y lo compilas. Prueba este codigo si estas en C : #include <stdio.h> #include <stdlib.h> #include <allegro.h> int iniciar(); void realizar_juego(); void terminar(); int iniciar(){ allegro_init(); install_keyboard(); set_color_depth(16); if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){ printf("error al iniciar el modo grafico\n"); allegro_exit(); } } void terminar(){ allegro_exit(); } int main(){ iniciar(); realizar_juego(); terminar(); } END_OF_MAIN(); void realizar_juego(){ BITMAP *nave; PALETTE paleta; int x,y, x_anterior, y_anterior; BITMAP * buffer; nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta); set_palette(paleta); if (nave==NULL) terminar(); buffer=create_bitmap(nave->w,nave->h); clear (buffer); if (buffer==NULL) terminar(); x=SCREEN_W/2; y=SCREEN_H/2; while (!key[KEY_ESC]){ if (key[KEY_UP,KEY_W]) y--; if (key[KEY_DOWN,KEY_S]) y++; if (key[KEY_LEFT,KEY_A]) x--; if (key[KEY_RIGHT,KEY_D]) x++; if (x<0) x=x_anterior; if (x>SCREEN_W-nave->w) x=x_anterior; if (y<0) y=y_anterior; if (y>SCREEN_H-nave->h) y=y_anterior; if ((x_anterior!=x) || (y_anterior!=y)){ blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h); blit (screen,buffer,x,y,0,0,buffer->w,buffer->h); draw_sprite(screen,nave, x, y); } x_anterior=x; y_anterior=y; } }
Y este otro si estas en C++ #include <cstdio.h> #include <cstdlib.h> #include <allegro.h> #include <iostream> using namespace std; int iniciar(); void realizar_juego(); void terminar(); int iniciar(){ allegro_init(); install_keyboard(); set_color_depth(16); if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){ cout << "Error al iniciar el modo grafico" << endl; allegro_exit(); exit(-1); } } void terminar(){ allegro_exit(); } int main(){ iniciar(); realizar_juego(); terminar(); } END_OF_MAIN(); void realizar_juego(){ BITMAP *nave; PALETTE paleta; int x,y, x_anterior, y_anterior; BITMAP * buffer; nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta); set_palette(paleta); if (nave==NULL) terminar(); buffer=create_bitmap(nave->w,nave->h); clear (buffer); if (buffer==NULL) terminar(); x=SCREEN_W/2; y=SCREEN_H/2; while (!key[KEY_ESC]){ if (key[KEY_UP,KEY_W]) y--; if (key[KEY_DOWN,KEY_S]) y++; if (key[KEY_LEFT,KEY_A]) x--; if (key[KEY_RIGHT,KEY_D]) x++; if (x<0) x=x_anterior; if (x>SCREEN_W-nave->w) x=x_anterior; if (y<0) y=y_anterior; if (y>SCREEN_H-nave->h) y=y_anterior; if ((x_anterior!=x) || (y_anterior!=y)){ blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h); blit (screen,buffer,x,y,0,0,buffer->w,buffer->h); draw_sprite(screen,nave, x, y); } x_anterior=x; y_anterior=y; } }
|
|
« Última modificación: 11 Septiembre 2016, 21:45 pm por Poyoncio »
|
En línea
|
Curso de ensamblador desde cero
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
no hice lo de los couts, pero no se a que se refieren
Tienes que localizar qué línea da el error. Para ello hay muchos métodos, y uno es tan simple como ver hasta donde funciona bien. Por ejemplo, con el main, pondrías: int main(){ cout << 'a' << endl; iniciar(); cout << 'b' << endl; realizar_juego(); cout << 'c' << endl; terminar(); cout << 'd' << endl; }
Al ejecutarlo, deberías ver por la consola, letras. Si sale una 'a', el error está en la función "iniciar()". Si sale "ab", el error está en "realizar_juego()", y etc.
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
estoy en c++ y siempre he utilizado las librerías stdio y stdlib, uso printf porque me resulta más fácil
|
|
|
En línea
|
|
|
|
Poyoncio
|
estoy en c++ y siempre he utilizado las librerías stdio y stdlib, uso printf porque me resulta más fácil
Pues nose, si siempre has usado librerias stdio y stdlib nose como te han compilado, como te digo usa cstdio y cstdlib, y lo de printf, precisamente cout es mas facil. No hay que declarar el tipo de dato que vas a mostrar pero eso ya enfuncion de gustos. Saludos y haznos caso, sino, no se compilara nada
|
|
|
En línea
|
Curso de ensamblador desde cero
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Pues nose, si siempre has usado librerias stdio y stdlib nose como te han compilado, como te digo usa cstdio y cstdlib, y lo de printf, precisamente cout es mas facil. No hay que declarar el tipo de dato que vas a mostrar pero eso ya enfuncion de gustos.
Saludos y haznos caso, sino, no se compilara nada
Es recomendable utilizar las de C++, pero normalmente se pueden utilizar también las de C, stdlib.h y etc eh? No hay problema en compilar eso.
|
|
|
En línea
|
|
|
|
Poyoncio
|
Es recomendable utilizar las de C++, pero normalmente se pueden utilizar también las de C, stdlib.h y etc eh? No hay problema en compilar eso.
A pues nose, ami me daban errores cuando comence (hace 2 meses o menos) por eso ahora aunque casi nunca las use les tengo un poco de tirria, estuve como 2 dias con el mismo error me volvi loco
|
|
|
En línea
|
Curso de ensamblador desde cero
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
consegu hacer lo de los couts pero no me sale nngún avso
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
¿Puedes poner aquí el código con los couts?
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
#include <stdio.h> #include <stdlib.h> #include <allegro.h> int iniciar(); void realizar_juego(); void terminar(); int iniciar(){ allegro_init(); install_keyboard(); set_color_depth(16); if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){ printf("error al iniciar el modo grafico\n"); allegro_exit(); exit(-1); } } void terminar(){ allegro_exit(); } int main(){ iniciar(); realizar_juego(); terminar(); } END_OF_MAIN(); void realizar_juego(){ BITMAP *nave; PALETTE paleta; int x,y, x_anterior, y_anterior; BITMAP * buffer; nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta); set_palette(paleta); if (nave==NULL) terminar(); buffer=create_bitmap(nave->w,nave->h); clear (buffer); if (buffer==NULL) terminar(); x=SCREEN_W/2; y=SCREEN_H/2; while (!key[KEY_ESC]){ if (key[KEY_UP,KEY_W]) y--; if (key[KEY_DOWN,KEY_S]) y++; if (key[KEY_LEFT,KEY_A]) x--; if (key[KEY_RIGHT,KEY_D]) x++; if (x<0) x=x_anterior; if (x>SCREEN_W-nave->w) x=x_anterior; if (y<0) y=y_anterior; if (y>SCREEN_H-nave->h) y=y_anterior; if ((x_anterior!=x) || (y_anterior!=y)){ blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h); blit (screen,buffer,x,y,0,0,buffer->w,buffer->h); draw_sprite(screen,nave, x, y); } x_anterior=x; y_anterior=y; } }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Aqui les dejo un buen programa!!!!!!!!!!
Diseño Gráfico
|
Zeden
|
0
|
1,929
|
4 Junio 2004, 18:42 pm
por Zeden
|
|
|
¿Por qué no funciona correctamente este programa? Ficheros inside
Programación C/C++
|
NathanD
|
5
|
2,965
|
25 Febrero 2013, 22:58 pm
por NathanD
|
|
|
¿Programa en c++ compila correctamente, pero se cuelga al correr?
Programación C/C++
|
erikat
|
3
|
3,847
|
4 Diciembre 2013, 12:22 pm
por Eternal Idol
|
|
|
El programa dejó de funcionar al dar una respuesta? (RESUELTO)
Programación C/C++
|
mcamara46
|
5
|
2,511
|
27 Diciembre 2013, 23:50 pm
por leosansan
|
|
|
El controlador de pantalla dejo de funcionar y se recupero correctamente
Hardware
|
riurannew
|
3
|
2,608
|
5 Mayo 2015, 09:29 am
por riurannew
|
|