SFML и C++ Уроки \ Разработка игр › Форумы › SFML Начало работы (подключение и настройка) › C++: Марио (платформер)
В этой теме 3 ответа, 2 участника, последнее обновление Heisenberg 8 года/лет, 8 мес. назад.
-
АвторСообщения
-
Как решить проблему, не могу дальше запускать проект, консоль открывается и закрывается, только начал изучать c++ еще не знаю все тонкости…
C++123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124#include <SFML/Graphics.hpp>using namespace sf;int ground = 150;int main(){}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 * int(currentFrame), 244, 40, 50));if (dx < 0) sprite.setTextureRect(IntRect(40 * int(currentFrame) + 40, 244, -40, 50));sprite.setPosition(rect.left, rect.top);dx = 0;int main();{RenderWindow window(VideoMode(500, 500), "Test!");Texture t;t.loadFromFile("fang.png");float currentFrame = 0;PLAYER p(t);Clock clock;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.4; p.onGround = false; }}p.update(time);window.clear(Color::White);window.draw(p.sprite);window.display();}system("pause");}}};С 8 по 14 строку удали пустой int main(){}
В конце вместо system(“pause”); напиши return 0;
Функции кроме void должны возвращать значения.
Функция main должна быть всего одна, это даже не функция а точка входа программы, то, с чего твоя программа начнёт работать.
Рано вы начали изучать SFML, это помешает вам в скорости изучения C++.Ещё у вас int main находится внутри класса. Ваш код не будет работать, могу помоч в изучении C++, потихоньку направляя на нужные уроки для пошагового изучения C++.
Если браться за всё и сразу, ничего не получится.Если что обращайся vk.com/v1z.34
float dx, dy;;
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.