首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SFML中由RectangleShape组成的Tilegrid给出转换错误

在SFML中由RectangleShape组成的Tilegrid给出转换错误
EN

Stack Overflow用户
提问于 2019-02-26 04:55:59
回答 1查看 315关注 0票数 0

我正在学习C++,想进入图形领域。我正在使用SFML,并试图使一个蛇游戏。我想使用矩形形状,并通过引用一个数组和系数40 (我的tilesize)来更新每个矩形的位置。我相信我的for循环是正确的,但我很难使用sf::setPosition。它给了我一个转换错误。下面是我的代码:

代码语言:javascript
运行
复制
#include <SFML\Graphics.hpp>

int main() 
{
    int xWindow = 1280; //Divided by 40 pixels, equals to a width of 32 tiles
    int yWindow = 720; //Divided by 40 pixels, equals to a height of 18 tiles
    float array[32][18] = { 0 };

    sf::RenderWindow window(sf::VideoMode(xWindow, yWindow), "Title"); //32 & 18

    while (window.isOpen())
    {
        ////////Grid variables/////////
        int xFactor = 32;
        int yFactor = 18;
        int size = 40;
        ////////Events////////

        ////////draw////////
        window.clear();

        for (int i = 0; i <= 31;i++)
        {
            for (int j = 0; j <= 17; j++)
            {
                sf::RectangleShape block(sf::Vector2f(size, size));
                block.setFillColor(sf::Color::Blue);
                block.setPosition(array[i * size][j * (size)]); //ERROR OCCURS HERE: cannot convert argument 1 from 'float' to 'const sf::Vector2f &'
                window.draw(block);
            }
        }

        ///////Display//////
        window.display();
    }
}

我在想setPosition只接受浮点数或向量作为输入,但是如果我没记错的话,你不能用整数以外的任何数组来移动?

如何在SFML C++中设置这样一个简单的网格呢?

谢谢你的回答!

EN

Stack Overflow用户

发布于 2019-02-26 05:03:50

一个位置是两个数字,一个x和y坐标。array[i * size][j * (size)]只是二维浮点数组中的一个数字。

我会选择像这样的东西

代码语言:javascript
运行
复制
block.setPosition(i*size, j*size);
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54874525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档