C/Visual C - Ayuda con código Allegro

   
Vista:
Imágen de perfil de Guillermo

Ayuda con código Allegro

Publicado por Guillermo (2 intervenciones) el 18/04/2017 15:59:36
Buenos dias.
Estoy haciendo un afinador de guitarra en Code::Blocks usando la libreria Allegro, pero al ejecutar el código me manda este mensaje: "This application has requested the Runtime to terminate it in an inusual way.
Please contact the applicaction's support team for more information"

Mi código es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <allegro.h>
#include <cstdlib>
#include <stdio.h>
#include "inicia.h"
 
int main ()
{
    inicia_allegro(835,216);
    inicia_audio(70,70);
    install_mouse();
 
    BITMAP *buffer = create_bitmap(835,216);
    BITMAP *fondo1 = load_bitmap("FONDO1.bmp",NULL);
    BITMAP *fondo2 = load_bitmap("FONDO2.bmp",NULL);
    BITMAP *fondo3 = load_bitmap("FONDO3.bmp",NULL);
    BITMAP *fondo4 = load_bitmap("FONDO4.bmp",NULL);
    BITMAP *fondo5 = load_bitmap("FONDO5.bmp",NULL);
    BITMAP *fondo6 = load_bitmap("FONDO6.bmp",NULL);
    BITMAP *fondo7 = load_bitmap("FONDO7.bmp",NULL);
    BITMAP *cursor = load_bitmap("cursor.bmp",NULL);
 
    SAMPLE *primera = load_wav("E2.wav");
    SAMPLE *segunda = load_wav("B.wav");
    SAMPLE *tercera = load_wav("G.wav");
    SAMPLE *cuarta = load_wav("D.wav");
    SAMPLE *quinta = load_wav("A.wav");
    SAMPLE *sexta = load_wav("E.wav");
 
    bool salida = false;
 
    while(!salida && !key[KEY_ESC]){
 
        if(mouse_x > 156 && mouse_x < 58 &&
           mouse_y > 147 && mouse_y < 174){
 
            blit(fondo2,buffer,0,0,0,0,835,216);
 
            if(mouse_b & 1){
 
            play_sample(sexta, 200, 150, 1000, 0);
 
            }
 
           }else if(mouse_x > 294 && mouse_x < 198 &&
           mouse_y > 147 && mouse_y < 174){
 
           blit(fondo3,buffer,0,0,0,0,835,216);
 
           if(mouse_b & 1){
 
            play_sample(quinta, 200, 150, 1000, 0);
 
           }
 
           }else if(mouse_x > 392 && mouse_x < 304 &&
           mouse_y > 147 && mouse_y < 174){
 
           blit(fondo4,buffer,0,0,0,0,835,216);
 
           if(mouse_b & 1){
 
            play_sample(cuarta, 200, 150, 1000, 0);
 
           }
 
           }else if(mouse_x > 526 && mouse_x < 428 &&
           mouse_y > 147 && mouse_y < 174){
 
           blit(fondo5,buffer,0,0,0,0,835,216);
 
           if(mouse_b & 1){
 
            play_sample(tercera, 200, 150, 1000, 0);
 
           }
 
           }else if(mouse_x > 660 && mouse_x < 560 &&
           mouse_y > 147 && mouse_y < 174){
 
           blit(fondo6,buffer,0,0,0,0,835,216);
 
           if(mouse_b & 1){
 
            play_sample(segunda, 200, 150, 1000, 0);
 
           }
 
           }else if(mouse_x > 790 && mouse_x < 694 &&
           mouse_y > 147 && mouse_y < 174){
 
           blit(fondo7,buffer,0,0,0,0,835,216);
 
           if(mouse_b & 1){
 
            play_sample(primera, 200, 150, 1000, 0);
 
           }
 
           }else blit(fondo1,buffer,0,0,0,0,835,216);
 
        masked_blit(cursor,buffer,0,0,mouse_x,mouse_y,13,22);
        blit(buffer,screen,0,0,0,0,835,216);
 
    }
 
    destroy_bitmap(buffer);
 
    return 0;
}
END_OF_MAIN ()


Todos los bitmaps y samples los tengo en la misma carpeta del proyecto
Agradeceria mucho su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con código Allegro

Publicado por agustin (266 intervenciones) el 18/04/2017 23:02:56
De momento tienes cosas muy raras. Esto:
1
2
if(mouse_x > 156 && mouse_x < 58 &&
           mouse_y > 147 && mouse_y < 174){
Nunca se va a cumplir porque no puede haber un número mayor que 147 y a la vez menor que 58. Hay algún otro así en el código así que revisa eso.
Esto que se supone que es:
1
END_OF_MAIN ()
No debería ni compilar así como lo muestras.
Por lo demás no se por donde podría venir el error sin depurar el código. ¿Es posible que no estés iniciando bien allegro? Prueba a tracear línea a línea y veras donde falla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Guillermo

Ayuda con código Allegro

Publicado por Guillermo (2 intervenciones) el 19/04/2017 02:22:14
ya lo corregí, y ya imprime el fondo1, pero al poner el mouse entre cada espacio por assi decirlo, no imprime el fondo que corresponde, se queda en fondo1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con código Allegro

Publicado por agustin (266 intervenciones) el 19/04/2017 08:56:52
Te pasa con todos o es con algún fondo en concreto? No termino de entender lo que quieres decir pero lo que veo es que entre cada fondo dejas un margen y mientras estés en ellos no habrá cambios en pantalla. Para poder ayudarte haría falta tener todo el proyecto ya que así daremos palos de ciego.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad