本文介绍了帮我在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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!