标签: sdl

SDL_FreeSurface() 在功能上等同于 free() 吗?

我正在尝试释放一堆不同类型的东西,所以我认为我可以通过将它们添加到一堆void *单元格中使用一个函数来释放所有它们。

我的问题是:保存SDL_Surface*asvoid *并使用该free()函数而不需要是否安全SDL_FreeSurface()

c sdl sdl-1.2

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

SDL可以使用纯C吗?

如何设置SDL在C中工作?我的意思是没有类,纯C语言.我在C中看到很少使用SDL的项目,但是当我尝试设置或下载时,只有C++版本.您能否指导我如何在Mac(Xcode)或Windows环境中安装SDL for C?

编辑:我知道SDL是用C语言编写的,但它并没有使它成为C库.第一个教程(以及我检查过的所有其他课程都大量使用类.第一个来自网站上的教程部分,在第二页上使用类代码.http://www.sdltutorials.com/sdl-tutorial-basics

LazyFoo教程虽然陈旧,但它们也使用c ++.

你能把我链接到使用C的教程吗?

c sdl

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

C主要表达式 - 它是否是主表达式?

我正在使用这个基本的程序来学习打印屏幕.

运行应用程序时出现以下错误:

错误:'='标记之前的预期主表达式"

#include "SDL.h" 
#include <stdio.h> 
#define window 
using namespace std; 
const int SCREEN_WIDTH = 640; 
const int SCREEN_HEIGHT = 480; 
int main( int argc, char* args[] ) 
{
    SDL_Surface* screenSurface =NULL; 
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) 
    { 
        printf( "SDL could not initialize! SDL_Error: %s\n",SDL_GetError() ); 
    } 
    else 
    {  
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
    } 
    if(window==NULL) 
    { 
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN ); 
    } …
Run Code Online (Sandbox Code Playgroud)

c sdl

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

这个范围内没有声明sqrt、cos、sin?

我只是试图使用sincossqrt功能,但我不断收到错误消息“在此范围内没有宣布”。我已经查看了错误的所有搜索结果,并且 1. 编码人员正在使用终端来编译他们的代码(而不是我正在使用的 CodeBlocks) 2. 我已经尝试使用cmath,添加using namespace std和使用绝对路径。我越来越沮丧。

#ifndef _MATH_H
#define _MATH_H
#include </usr/include/math.h>

#define PI 3.14159265
#define DEG_TO_RAD PI / 180.0f

struct Vector2
{
    float x;
    float y;

    Vector2(float _x = 0.0f, float _y = 0.0f)
        : x(_x), y(_y) {}

    float MagnitudeSqr()
    {
        return x*x + y*y;
    }

    float Magnitude()
    {
        return (float)sqrt(x*x + y*y);
    }

    Vector2 Normalized()
    {
        float mag = Magnitude();

        return Vector2(x/ mag, y /mag);
    } …
Run Code Online (Sandbox Code Playgroud)

c++ sdl codeblocks

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

是否可以在C/SDL中编写塔防

我必须使用SDL库在ANSI C中编写Tower Defense游戏,但是我深入研究LazyFoo的教程,我越觉得由于局限性而无法在纯C中编写它.所以我的问题是 - 我遇到了大麻烦,或者我只是恐慌.它必须是一个简单的塔防游戏,没有什么花哨的,但它是否可以只使用C?

c sdl

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

错误:"分配抽象类类型的对象"尽管实现了所有虚函数

我收到错误"分配抽象类类型'MainGame的对象",即使已经实现了所有虚函数.以下是相关代码段:

main.cpp中

#include "Gamestate_MainGame.h"

int main() {
    Game game;
    if (game.init(new MainGame))
        game.loop();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Gamestate.h

#ifndef Gamestate_h
#define Gamestate_h
#include <SDL2/SDL.h>
#include "Game.h"

class GameState {
public:
    virtual bool init(Graphics* graphics, Game* game) = 0;
    virtual void quit() = 0;

    virtual void handleEvents(SDL_Event* e) = 0;
    virtual void logic() = 0;
    virtual void render() = 0;

protected:
    Game* game = NULL;
    Graphics* graphics = NULL;
};
#endif
Run Code Online (Sandbox Code Playgroud)

Gamestate_MainGame.h

#ifndef Gamestate_MainGame_h
#define Gamestate_MainGame_h
#include <vector>
#include <SDL2_mixer/SDL_mixer.h>
#include "Gamestate.h" …
Run Code Online (Sandbox Code Playgroud)

c++ xcode sdl

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

C相当于C++的双冒号?

我正在学习C,对C++一无所知.使用C++的LazyFoo的SDL2教程做了一个我不理解的双冒号的东西,因此无法在C中跟随.

如果有帮助,这里是教程的链接:

http://lazyfoo.net/tutorials/SDL/04_key_presses/index.php

SDL_Surface *loadSurface( std::string path )
{
    //Load image at specified path
    SDL_Surface *loadedSurface = SDL_LoadBMP( path.c_str());
    if( loadedSurface == NULL )
    {
        printf("Unable to load image %s! SDL Error: %s\n", path.c_str(), SDL_GetError());
    }

    return loadedSurface:
}
Run Code Online (Sandbox Code Playgroud)

除了函数参数和LoadBMP参数之外,这里的所有内容都对我有意义.我不知道是什么::意思,我不知道path.c_str()是指什么.

请问,有人可以用在C语言中有意义的方式解释它,或者建议只使用C语言的解决方法吗?

c c++ sdl

-8
推荐指数
1
解决办法
239
查看次数

标签 统计

sdl ×7

c ×5

c++ ×3

codeblocks ×1

sdl-1.2 ×1

xcode ×1