Russian Qt Forum
Марта 31, 2025, 15:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО]помогите пожалуйста (game dev)  (Прочитано 12632 раз)
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

Сообщений: 405



Просмотр профиля
« Ответ #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.137 секунд. Запросов: 22.