Russian Qt Forum
Ноябрь 23, 2024, 04:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]помогите пожалуйста (game dev)  (Прочитано 11773 раз)
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« : Май 30, 2023, 12:37 »

проект: https://github.com/SpeechKingV/guess_the_number__with_graphics

  • окно игры пропадает при запуске(не меню)(из кнопок работает только "Start a new game"(так должно быть(пока что)))

  • файл сохранения не создаётся(он .txt)

вывод приложения:
12:32:06: Запускается F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe ...
QIODevice::write (QFile, "Save"): device not open
12:32:38: F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe завершился с кодом 0

выывод сборки:
12:31:57: Выполняются этапы для проекта guess_the_number__with_graphics...
12:31:57: Настройки не изменились, этап qmake пропускается.
12:31:58: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\guess_the_number__with_graphics -I. -IF:\Qt5.14\5.12.12\mingw73_64\include -IF:\Qt5.14\5.12.12\mingw73_64\include\QtWidgets -IF:\Qt5.14\5.12.12\mingw73_64\include\QtGui -IF:\Qt5.14\5.12.12\mingw73_64\include\QtANGLE -IF:\Qt5.14\5.12.12\mingw73_64\include\QtCore -Idebug -I. -I/include -IF:\Qt5.14\5.12.12\mingw73_64\mkspecs\win32-g++  -o debug\Menu_games.o ..\guess_the_number__with_graphics\Menu_games.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\guess_the_number__with_graphics.exe debug/GuessTheNumber_WithGraphics.o debug/Menu_games.o debug/main.o debug/qrc_resource_file.o debug/moc_GuessTheNumber_WithGraphics.o debug/moc_Menu_games.o  F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Widgetsd.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Guid.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Cored.a  -lmingw32 F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.6.11-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
12:32:06: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился успешно.
12:32:06: Прошло времени: 00:09.
« Последнее редактирование: Июнь 25, 2023, 12:11 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Май 30, 2023, 21:29 »

Цитировать
окно игры пропадает при запуске
потому что объект типа GuessTheNumber_WithGraphics удаляется сразу после выхода из функции. замени на указатель, тогда окно не будет закрываться.
Цитировать
файл сохранения не создаётся(он .txt)
ты забыл вызвать file.open()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #2 : Май 31, 2023, 10:20 »

Цитировать
окно игры пропадает при запуске
потому что объект типа GuessTheNumber_WithGraphics удаляется сразу после выхода из функции. замени на указатель, тогда окно не будет закрываться.
Цитировать
файл сохранения не создаётся(он .txt)
ты забыл вызвать file.open()
спасибо окно игры перестало закрываться, но файл сохранения фсё ещё не появляется
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июнь 01, 2023, 23:03 »

у file.open() надо проверять возвращаемое значение, может он не может создать файл в той папке
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #4 : Июнь 02, 2023, 12:18 »

проект:https://github.com/SpeechKingV/guess_the_number__with_graphics
(я перезалил(другая версия))

у file.open() надо проверять возвращаемое значение, может он не может создать файл в той папке
Код:
if(file.open(QIODevice::WriteOnly))
так?

просто как я это добавил у меня при нажатии кнопки закрываеться весь проект

вывод приложения:
12:14:21: Запускается F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe ...
QIODevice::read (QFile, "Save.txt"): WriteOnly device
QObject::moveToThread: Widgets cannot be moved to a new thread
12:14:33: Программа неожиданно завершилась.
12:14:33: Процесс был завершён принудительно.
12:14:33: F:\projects\Qt_project\5.0.2\games\guess_the_number__with_graphics\build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\debug\guess_the_number__with_graphics.exe аварийно завершился.



вывод сборки:
12:14:17: Выполняются этапы для проекта guess_the_number__with_graphics...
12:14:17: Настройки не изменились, этап qmake пропускается.
12:14:17: Запускается: «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» -j6
F:/Qt5.14/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
g++ -c -fno-keep-inline-dllexport -g -std=gnu++11 -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\guess_the_number__with_graphics -I. -IF:\Qt5.14\5.12.12\mingw73_64\include -IF:\Qt5.14\5.12.12\mingw73_64\include\QtWidgets -IF:\Qt5.14\5.12.12\mingw73_64\include\QtGui -IF:\Qt5.14\5.12.12\mingw73_64\include\QtANGLE -IF:\Qt5.14\5.12.12\mingw73_64\include\QtCore -Idebug -I. -I/include -IF:\Qt5.14\5.12.12\mingw73_64\mkspecs\win32-g++  -o debug\Menu_games.o ..\guess_the_number__with_graphics\Menu_games.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\guess_the_number__with_graphics.exe debug/GuessTheNumber_WithGraphics.o debug/Menu_games.o debug/main.o debug/qrc_resource_file.o debug/moc_GuessTheNumber_WithGraphics.o debug/moc_Menu_games.o  F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Widgetsd.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Guid.a F:\Qt5.14\5.12.12\mingw73_64\lib\libQt5Cored.a  -lmingw32 F:\Qt5.14\5.12.12\mingw73_64\lib\libqtmaind.a -LC:\openssl\lib -LC:\Utils\my_sql\mysql-5.6.11-winx64\lib -LC:\Utils\postgresql\pgsql\lib -lshell32
mingw32-make[1]: Leaving directory 'F:/projects/Qt_project/5.0.2/games/guess_the_number__with_graphics/build-guess_the_number__with_graphics-Desktop_Qt_5_12_12_MinGW_64_bit-Debug'
12:14:21: Процесс «F:\Qt5.14\Tools\mingw730_64\bin\mingw32-make.exe» завершился успешно.
12:14:21: Прошло времени: 00:04.
« Последнее редактирование: Июнь 02, 2023, 12:26 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #5 : Июнь 02, 2023, 21:58 »

Я бы советовал сначала почитать литературу по программированию. Такое чувство, что вы надёргали куски кода, толком не понимая, что именно эти куски делают.
Допустим, вы сначала открываете файл с параметром QIODevice::WriteOnly, а чуть ниже пытаетесь из него читать с помощью readAll (видимо, не совсем понимая, как работает QTextStream)
С потоками та же беда.
Кстати, зачем они вам там? Почему бы вам просто не создать GuessTheNumber_WithGraphics и использовать?
Записан

Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #6 : Июнь 21, 2023, 15:38 »

Я бы советовал сначала почитать литературу по программированию. Такое чувство, что вы надёргали куски кода, толком не понимая, что именно эти куски делают.
Допустим, вы сначала открываете файл с параметром QIODevice::WriteOnly, а чуть ниже пытаетесь из него читать с помощью readAll (видимо, не совсем понимая, как работает QTextStream)
С потоками та же беда.
Кстати, зачем они вам там? Почему бы вам просто не создать GuessTheNumber_WithGraphics и использовать?
потоки для того что бы следующий уровень открывался при прохождении предыдущего
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Июнь 21, 2023, 18:04 »

абсолютно неочевидно зачем для этого другой поток
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #8 : Июнь 21, 2023, 18:22 »

абсолютно неочевидно зачем для этого другой поток
что бы подождать конца прошлого уровня(поток)(уровень = поток)
« Последнее редактирование: Июнь 21, 2023, 18:37 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #9 : Июнь 21, 2023, 19:05 »

а что мешает выслать сигнал при окончании уровня и обработать его в этом же потоке?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #10 : Июнь 22, 2023, 15:48 »

а что мешает выслать сигнал при окончании уровня и обработать его в этом же потоке?
пытался но так и не понял как это сделать Непонимающий
может подскажете?
(проблема не из-за потоков а из-за функции set у класса GuessTheNumber_WithGraphics(переменной w))
« Последнее редактирование: Июнь 22, 2023, 16:21 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #11 : Июнь 22, 2023, 21:51 »

https://github.com/SpeechKingV/guess_the_number__with_graphics/blob/main/GuessTheNumber_WithGraphics.h не вижу ту никакой функции set. так в каком именно месте проблема?

не надо злоупотреблять разноцветным текстом
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #12 : Июнь 23, 2023, 12:48 »

https://github.com/SpeechKingV/guess_the_number__with_graphics/blob/main/GuessTheNumber_WithGraphics.h не вижу ту никакой функции set. так в каком именно месте проблема?

не надо злоупотреблять разноцветным текстом
GuessTheNumber_WithGraphics.h:22(закоментирована)

Menu_games.cpp:80(for() закоментираван)
« Последнее редактирование: Июнь 23, 2023, 13:02 от Noize_programmer » Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Июнь 23, 2023, 15:38 »

не сильно понятно что там где происходит. в месте, где у тебя заканчивается уровень, надо сигнал выслать, чтоб обрабатывающий сигнал вызывал твою функцию set.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Noize_programmer
Чайник
*
Offline Offline

Сообщений: 91


работает не трогай


Просмотр профиля WWW
« Ответ #14 : Июнь 23, 2023, 17:04 »

не сильно понятно что там где происходит. в месте, где у тебя заканчивается уровень, надо сигнал выслать, чтоб обрабатывающий сигнал вызывал твою функцию set.
спасибо игра не закрывается Веселый Веселый Веселый Веселый Веселый Веселый Веселый Веселый Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Улыбающийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Смеющийся Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий Подмигивающий
Записан

Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 23.