标签: allegro

Cpp中的私有静态数据成员只能在其定义中初始化,但是在类初始化中无效?

在头文件中初始化我收到以下错误:

invalid in-class initialization of static data member of non-integral type 'bool [8]'
Run Code Online (Sandbox Code Playgroud)

如果我尝试在.cpp中初始化,我得到:

'bool Ion::KeyboardInput::key [8]' is a static data member; it can only be initialized at its definition
Run Code Online (Sandbox Code Playgroud)

继承人标题:

enum MYKEYS {
    KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_W, KEY_S, KEY_A, KEY_D
};

class KeyboardInput
{
public:
    KeyboardInput();
    ~KeyboardInput();
    static void getKeysDown(ALLEGRO_EVENT ev);
    static void getKeysUp(ALLEGRO_EVENT ev);
    static bool getKey(int keyChoice);

private:
    static bool key[8] = {false, false, false, false, false, false, false, false};
};
Run Code Online (Sandbox Code Playgroud)

c++ oop initialization class allegro

5
推荐指数
2
解决办法
6857
查看次数

严重错误:找不到“ QuickTime / QuickTime.h”文件

我将macOS更新为Sierra,并且我的一些文件消失了。最重要的是Allegro的图书馆。我正在尝试再次安装它,就像我第一次看到的视频(https://www.youtube.com/watch?v=UJtmJfWNTJY)一样,但是显示了以下错误消息:

'$Users/macbookpro/Downloads/allegro/include/allegro5/platform/alosx.h:43:12: fatal error: 
      'QuickTime/QuickTime.h' file not found'
  #import <QuickTime/QuickTime.h>
Run Code Online (Sandbox Code Playgroud)

我进行了搜索,发现这只是Xcode中的更改参数,但是,尽管使用了终端,但我没有使用Xcode来编译我的代码。有什么提示吗?

macos installation xcode allegro macos-sierra

5
推荐指数
1
解决办法
2886
查看次数

allegro 5以一定的间隔执行事件

我正在使用快艇5进行我的第一场比赛,这是一场蛇比赛.为了移动蛇游戏,我想使用我制作的方格,所以蛇会定期移动.

如何使用计时器在一定时间内发生事件?

例如,我希望我的蛇在方向设置中每秒移动一次,我知道如何控制他,但我不知道如何创建一个以某个间隔发生的事件.我在Windows XP SP3上使用Codeblocks IDE

c++ allegro allegro5

4
推荐指数
1
解决办法
1193
查看次数

如何在Clion和CMake中添加allegro库?

我正在尝试使用Clion IDE编译我的游戏项目但是在移植allegro 5时遇到了问题.我收到此错误:

main.cpp:2:10: fatal error: 'allegro/allegro.h' file not found
   #include <allegro/allegro.h>
Run Code Online (Sandbox Code Playgroud)

我的CMakeLists是:

cmake_minimum_required(VERSION 3.5)
project(testAllegro)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(testAllegro ${SOURCE_FILES})

INCLUDE_DIRECTORIES(  /usr/local/include )
LINK_DIRECTORIES(  /usr/local/lib )

file(GLOB LIBRARIES "/usr/local/Cellar/allegro/5.2.1.1_1/lib/*.dylib")
message("LIBRARIES = ${LIBRARIES}")

TARGET_LINK_LIBRARIES(testAllegro  ${LIBRARIES})
Run Code Online (Sandbox Code Playgroud)

我想问一下如何将外部图书馆的快板添加到Clion?

c++ macos allegro cmake clion

4
推荐指数
1
解决办法
2715
查看次数

使用allegro 5和g ++编译C++代码

为了使用allegro 5编译代码,我需要添加到g ++中的标志是什么?我试过了

g++ allegro5test.cpp -o allegro5test `allegro-config --libs`
Run Code Online (Sandbox Code Playgroud)

但那不起作用.我正在使用ubuntu 11.04.我使用http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian上的说明安装了allegro 5

我试过了:

g++ allegro5test.cpp -o allegro5test `allegro-config --cflags --libs`
Run Code Online (Sandbox Code Playgroud)

它还提供了一堆未定义的错误,例如:对"al_install_system"的未定义引用

allegro-config --cflags --libs 输出:

-I/usr/local/include
-L/usr/local/lib -lalleg
Run Code Online (Sandbox Code Playgroud)

c++ g++ allegro allegro5

3
推荐指数
1
解决办法
9253
查看次数

未明确引用'main'

你必须喜欢链接器错误*讽刺*.无论如何,我正在使用pspsdk附带的allegro的psp端口开发一个psp游戏.在我修复了所有其他未定义的引用之后,这个引起了我的注意.完整的错误消息和makefile和代码如下:

错误详情

1>------ Build started: Project: PSP Pong, Configuration: Debug Win32 ------
1>  psp-g++ -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-exceptions -fno-rtti -D_PSP_FW_VERSION=150   -c -o main.o main.cpp
1>  psp-gcc -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150  -L. -LC:/pspsdk/psp/sdk/lib   main.o -lalleg -lpspgu -lpspirkeyb -lm -lpsppower -lpspaudio -lpsprtc  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o main.elf
1>  c:/pspsdk/bin/../lib/gcc/psp/4.3.5/../../../../psp/lib/crt0.o: In function `_main':
1>  ../../../../pspsdk/src/startup/crt0.c (86) : undefined reference to `main'
1>  C:\pspsdk\bin\make: *** …
Run Code Online (Sandbox Code Playgroud)

c++ makefile allegro linker-errors

3
推荐指数
1
解决办法
2676
查看次数

你怎么能有效地创建一个allegro 5标题菜单?

我正在使用Allegro 5中的第一个游戏,我已经有了标题菜单渲染,但是我想在菜单中添加可点击的文本.如何将其设置为当您将鼠标悬停在文本上时可以单击它?我正在考虑使用for语句检查像素对性能非常不利,这是我到目前为止所做的:

#include <allegro5\allegro.h>
#include <allegro5\allegro_image.h>
#include <allegro5\allegro_primitives.h>

const int width = 1280;
const int height = 720;

int main(void)
{
    al_init();

    al_init_primitives_addon();
    al_init_image_addon();

    ALLEGRO_DISPLAY *display = al_create_display(width, height);
    ALLEGRO_BITMAP *title = al_load_bitmap("titlemenu.bmp");

    al_clear_to_color(al_map_rgb(0, 0, 0));
    al_draw_bitmap(title, 0, 0, 0);
    al_flip_display();
    al_rest(3.0);
    al_destroy_display(display);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Windows XP SP3上的代码块

c++ allegro codeblocks allegro5

3
推荐指数
1
解决办法
4976
查看次数

WIN32上"iPhone"风格动画的最佳2D动画库/技术?

所有,

我已经构建了一个漂亮的演示应用程序,它将我们内部系统的数据显示为全屏"广告牌"样式显示.您可以将此视为显示国家赤字的应用程序 - 快速增加的数字,整天快速动画.

问题是该演示工作非常好,客户希望我建立一个工业强度版本!

我想做到这一点在C++中,但它可能是Java或也许 C#(虽然我不喜欢使用C#,因为我在ENV我没有那么强烈).

我正在玩SDL或Allegro,但我也没有任何经验,所以我对那里最好的(也是最理想的)工具包持开放态度.

当我说"iPhone"风格时,我的意思是面板之间简单而优雅的过渡.iPhone可以很好地使用幻灯片,淡入淡出和混合.我的应用不需要做任何3D风格的动画.在图形方面,我真的只需要简单的东西:90%的文本,一些图像,以及简单的图元,如线条,矩形和渐变填充.

当然,我可以在"普通的旧"DirectDraw或OpenGL中实现它,但我真的不想考虑编写计时器类和为动画选择计时方法 - 一些工具包应该是正确的.

谢谢你的帮助!

RF

c++ animation sdl 2d allegro

2
推荐指数
1
解决办法
3792
查看次数

C++:从地图中删除迭代器,然后递增到下一个迭代器

此方法导致中止错误:"map/set iterator not incrementable." 由于在if失败之后并且确定应该擦除的虚拟迭代器(并且是),继续到映射中的下一个迭代器++_iter失败,因为_iter它不再是有效的对象/指针.

迭代地图的正确程序是什么,并且能够在整个过程中删除单个项目?

typedef std::map<std::string, BITMAP*> MapStrBmp;
typedef MapStrBmp::iterator MapStrBmpIter;
\\...
void BitmapCache::CleanCache() {
    //Clean the cache of any NULL bitmaps that were deleted by caller.
    for(MapStrBmpIter _iter = _cache.begin(); _iter != _cache.end(); ++_iter) {
        if(_iter->second != NULL) {
            if((_iter->second->w < 0 && _iter->second->h < 0) == false) continue;
        }
        _cache.erase(_iter);
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ iterator stdmap allegro

2
推荐指数
1
解决办法
3003
查看次数

这是不是特定的重构与循环?

这个函数中的代码是不是特定于重构循环?没有我能想到的可以准确再现所需结果的算法.

bool Mouse::CreateDefaultImage() {
    if(_defaultImage != nullptr) return false;

    const int DEPTH = 32;
    const int WIDTH = 11;
    const int HEIGHT = 19;
    _defaultImage = create_bitmap_ex(DEPTH, WIDTH, HEIGHT);
    if(_defaultImage == nullptr) return false;

    const int BLACK = 0x000000;
    const int WHITE = 0xFFFFFF;
    const int PINK = 0xFF00FF;

    //Color bitmap to transparent
    clear_to_color(_defaultImage, PINK);

    //Only color areas that are NOT transparent.
    //Each block is a row of pixels.

    /************************************************************************
     * SHOULD PRODUCE THIS RESULT   * = BLACK; 0 = …
Run Code Online (Sandbox Code Playgroud)

c++ refactoring allegro

2
推荐指数
1
解决办法
129
查看次数