【发布时间】:2015-08-20 22:31:01
【问题描述】:
我目前正在做一个项目,并试图通过 Character.Draw(Buffer) 的类函数将 draw_sprite(example.bmp,NULL) 绘制到屏幕上。 它不断崩溃,想知道为什么它不起作用。当我不使用类函数时它可以工作。
//Character.cpp
#include "Character.h"
const int scrx = 640;
const int scry = 480;
Character::Character(){
x = 10;
y = 10;
velx = 0;
movespeed = 5;
gun = load_bitmap("gun.bmp",NULL);
}
void Character::Draw(BITMAP * buff){
draw_sprite(buff, gun, 10,10);
}
//Character.h
#ifndef CHARACTER_H
#define CHARACTER_H
#include <allegro.h>
class Character{
public:
Character();
~Character();
void Draw(BITMAP *buff);
private:
BITMAP * gun;
};
//main.cpp
#include <allegro.h>
#include "Character.h"
using namespace std;
Character character;
int main()
{
allegro_init();
install_keyboard();
set_gfx_mode(GFX_AUTODETECT_WINDOWED, scrx, scry, 0, 0);
while(! key[KEY_ESC])
{
switch (select)
{
case 0:
...
case 2:
clear_bitmap(buffer);
character.Draw(buffer);
这是失败的地方,如果我不使用类函数来绘制。只需输入 Draw_Sprite(example) 即可。
【问题讨论】:
-
使用调试器。学习调试器。然后告诉我们哪些陈述导致了问题;预期输出或结果和实际输出或结果。不要忘记给我们输入数据。请记住,使用信息编辑您的帖子;不要放入 cmets。