本文介绍了帮我在dev c ++中运行mappy的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在dev c ++ 4.9.9.2中运行mappy时遇到了一个大问题我在电子书游戏编程中使用了一个简单的例子,在一个2版本中使用了allegro 4.2.1

i添加prarameters liballeg.a和alleg.lib但可以建立它!

此代码:

i have a big problem when run mappy in dev c++ 4.9.9.2 i'm using allegro 4.2.1 with a simple example in ebook "game programming all in one 2 edition"
i add prarameters liballeg.a and alleg.lib but can buiding it!
this code :

#include "allegro.h"
#include "mappyal.h"

//this must run at 640x480
#define MODE GFX_AUTODETECT_WINDOWED
#define WIDTH 640
#define HEIGHT 480
#define WHITE makecol(255,255,255)

#define BOTTOM 48000 - HEIGHT
//y offset in pixels 
int yoffset = BOTTOM;

//timer variables
volatile int counter;
volatile int ticks;
volatile int framerate;

//double buffer
BITMAP *buffer;	

//calculate framerate every second
void timer1(void)
{
    counter++;
    framerate = ticks;
    ticks=0;
}
END_OF_FUNCTION(timer1)


void main (void)
{
    //initialize program
	allegro_init();	
	install_timer();
	install_keyboard();
//    set_color_depth(16);
	set_gfx_mode(MODE, WIDTH, HEIGHT, 0, 0);
    //text_mode(-1);

    //create the double buffer and clear it
	buffer = create_bitmap(SCREEN_W, SCREEN_H);	
	if (buffer==NULL) 
    { 
        set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
        allegro_message("Error creating double buffer");
        return;
    }
	clear(buffer);

    //load the Mappy file
	if (MapLoad("level1.fmp"))
    {
        set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
		allegro_message ("Can't find level1.fmp");
		return;
	}

    //set palette
    MapSetPal8();

    //identify variables used by interrupt function
    LOCK_VARIABLE(counter);
    LOCK_VARIABLE(framerate);
    LOCK_VARIABLE(ticks);
    LOCK_FUNCTION(timer1);

    //create new interrupt handler
    install_int(timer1, 1000);

    //main loop
    while (!key[KEY_ESC])
	{
        //check for keyboard input
		if (key[KEY_PGUP]) yoffset-=4; 
		if (key[KEY_PGDN]) yoffset+=4; 
        if (key[KEY_UP])   yoffset-=1;
        if (key[KEY_DOWN]) yoffset+=1;

        //make sure it doesn't scroll beyond map edge
        if (yoffset < 0) yoffset = 0;
        if (yoffset > BOTTOM) yoffset = BOTTOM;


        //draw map with single layer
        MapDrawBG(buffer, 0, yoffset, 0, 0, SCREEN_W-1, SCREEN_H-1);

        //update ticks
        ticks++;

        //display some status information
        //textprintf(buffer,font,0,440,WHITE,"yoffset %d",yoffset);
        //textprintf(buffer,font,0,450,WHITE,"counter %d", counter);
        //textprintf(buffer,font,0,460,WHITE,"framerate %d", framerate);

        //blit the double buffer
        acquire_screen();
		blit (buffer, screen, 0, 0, 0, 0, SCREEN_W-1, SCREEN_H-1);
        release_screen();

	}

    //delete double buffer
	destroy_bitmap(buffer);

    //delete the Mappy level
	MapFreeMem();

	allegro_exit();
	return;
}

END_OF_MAIN()





please帮助我!: - [


<img src="http://imagizer.imageshack.us/v2/xq90/838/0mcq.png" border="0">
please help me!:-[

推荐答案

这篇关于帮我在dev c ++中运行mappy的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-18 23:14