Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ошибка C2661 с RectangleShape в Марио на C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не пойму как работает char http://www.cyberforum.ru/cpp-beginners/thread1505170.html
Выдает не символ, а сивол и число!!Это я уже пробую явное приведение. Кто поопытней, поясните!! #include<iostream> #include<conio.h> using namespace std; int a=218; char b=192; char c=217;...
C++ Состоит ли число из одинаковых цифр? Здраствуйте, помогите пожалуйста написать программу Данно натуральное число N. Используя только элементарные арифметические операции (+, —, *, /) выяснить, верно ли, что это число содержит все... http://www.cyberforum.ru/cpp-beginners/thread1505158.html
C++ Собрать программу без Visual Studio
Здравствуйте, вот возник вопрос, суть в сабже. В чем сам вопрос, поясняю. К примеру есть программа: int main() { cout <<"blabla"; } Ну как пример. Как сделать так чтобы без использования...
C++ Как открыть конкретный excel-файл?
Нужно получить доступ к уже готовому excel-файлу. Пользуюсь FindExecutable и ShellExecute, ввожу путь к нужному файлу, но при запуске просто открывается Excel-приложение с чистой книгой. Код:...
C++ Как из файла записать в вектор? http://www.cyberforum.ru/cpp-beginners/thread1505147.html
есть от такая программа в файл вроде пишет а вот придумать как извлечь в вектор не могу ( , подскажите как ето можно сделать или киньте ссылку где можно подробно почитать const int len = 50; ...
C++ Куда двигаться дальше(литература)? Заканчиваю читать книгу Дирк Хенкеманс, Марк Ли "Программирование на C++" и собственно вопрос, что дальше? Еще взял параллельно почитать Э.Таненбаума "Архитектура компьютера", незнаю насколько... подробнее

Показать сообщение отдельно
R_User
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 7

Ошибка C2661 с RectangleShape в Марио на C++ - C++

26.07.2015, 14:35. Просмотров 413. Ответов 5
Метки (Все метки)

Код был написан по туториалу с этого видео - http://www.youtube.com/watch?v=6OHMFwQK44k. SFML подключил с помощью инструкции отсюда - http://kychka-pc.ru/sfml/urok-1-podk...udio-2013.html.

Видеоурок.

Переписанный под диктовку код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include <SFML/Graphics.hpp>
 
using namespace sf;
 
int ground = 400;
 
const int H = 12;
const int W = 40;
 
String TileMap[H] = {
 
    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
    "B                         B     B",
    "B                         B     B",
    "B                         B     B",
    "B                         B     B",
    "B      0000           BBBBB     B",
    "BBB                       B     B",
    "B           BB            BB    B",
    "B           BB                  B",
    "B           BB     BB           B",
    "BBBBBB    BBBBBBBBBBBBBBBBBBBBBBB",
 
};
 
class PLAYER {
 
public:
 
    float dx, dy;
    FloatRect rect;
    bool onGround;
    Sprite sprite;
    float currentFrame;
    
    PLAYER(Texture &image)
    {
        sprite.setTexture(image);
        rect = FloatRect(7*32,9*32,40,50);
 
        dx = dy = 0.1;
        currentFrame = 0;
    }
 
    void update(float time)
    {
        rect.left += dx * time;
        if (!onGround) dy = dy + 0.0005*time;
        rect.top += dy*time;
        onGround = false;
        if (rect.top > ground) { rect.top = ground; dy = 0; onGround = true; }
        
        currentFrame += 0.005*time;
        if (currentFrame > 6) currentFrame -= 6;
        
        if (dx > 0) sprite.setTextureRect(IntRect(40 * Int16(currentFrame), 244, 40, 50));
        if (dx < 0) sprite.setTextureRect(IntRect(40 * Int16(currentFrame)+40, 244, -40, 50));
 
        sprite.setPosition(rect.left, rect.top);
    
        dx = 0;
    }
};
 
int main()
{
    RenderWindow window(VideoMode(600, 450), "Test!");
 
    Texture t;
    t.loadFromFile("fang.png");
 
    float currentFrame = 0;
 
    PLAYER p(t);
 
    Clock clock;
 
    RectangleShape rectangle(32,32);
 
    while (window.isOpen())
    {
        float Time = clock.getElapsedTime().asMicroseconds();
        clock.restart();
 
        Time = Time / 700;
 
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Left))
        {
            p.dx = -0.1;
 
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Right))
        {
            p.dx = 0.1;
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Up))
        {
            if (p.onGround) { p.dy = -0.35; p.onGround = false; }
        }
 
        p.update(Time);
 
        window.clear(Color::White);
 
        for (int i = 0; i < H; i++)
            for (int j = 0; j < W; j++)
            {
                if (TileMap[i][j] == 'B') rectangle.setFillColor(Color::Black);
                if (TileMap[i][j] == '0') rectangle.setFillColor(Color::Green);
                if (TileMap[i][j] == ' ') continue;
 
                rectangle.setPosition(j * 32, i * 32);
                window.draw(rectangle);
            }
 
        window.draw(p.sprite);
        window.display();
    }
 
    return 0;
}

До момента "8:54 - 9:53" с видеоурока код работал нормально, но строка #78 с RectangleShape выдала ошибку и ее замены на перечисленные ниже не помогли и, либо вызывали больше ошибок (в других строках), либо выводили окно с надписью "Debug Assertion Failed! Expression: string subscript out of range".

Описание основной ошибки.
Error C2661: sf::RectangleShape::RectangleShape: нет перегруженной функции, принимающей 2 аргументов.

IntelliSense: отсутствуют экземпляры конструктора "sf::RectangleShape::RectangleShape", соответствующие списку аргументов
(типы аргументов: (int, int)).

Неудачные варианты замены строки, взятые с этого же форума.
RectangleShape rectangle;
RectangleShape rectangle(sf::Vector2f(32.0f,32.0f));
RectangleShape rectangle();

Как починить это?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru