Russian Qt Forum
Ноябрь 22, 2024, 23:22
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
[РЕШЕНО]помогите пожалуйста (game dev)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО]помогите пожалуйста (game dev) (Прочитано 11761 раз)
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
[РЕШЕНО]помогите пожалуйста (game dev)
«
:
Май 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
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #2 :
Май 31, 2023, 10:20 »
Цитата: kambala от Май 30, 2023, 21:29
Цитировать
окно игры пропадает при запуске
потому что объект типа GuessTheNumber_WithGraphics удаляется сразу после выхода из функции. замени на указатель, тогда окно не будет закрываться.
Цитировать
файл сохранения не создаётся(он .txt)
ты забыл вызвать file.open()
спасибо окно игры перестало закрываться
,
но файл сохранения фсё ещё не появляется
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #4 :
Июнь 02, 2023, 12:18 »
проект:
https://github.com/SpeechKingV/guess_the_number__with_graphics
(я перезалил(другая версия))
Цитата: kambala от Июнь 01, 2023, 23:03
у 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
Сообщений: 404
Re: помогите пожалуйста (game dev)
«
Ответ #5 :
Июнь 02, 2023, 21:58 »
Я бы советовал сначала почитать литературу по программированию. Такое чувство, что вы надёргали куски кода, толком не понимая, что именно эти куски делают.
Допустим, вы сначала открываете файл с параметром QIODevice::WriteOnly, а чуть ниже пытаетесь из него читать с помощью readAll (видимо, не совсем понимая, как работает QTextStream)
С потоками та же беда.
Кстати, зачем они вам там? Почему бы вам просто не создать GuessTheNumber_WithGraphics и использовать?
Записан
Digital Art
Noize_programmer
Чайник
Offline
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #6 :
Июнь 21, 2023, 15:38 »
Цитата: tux от Июнь 02, 2023, 21:58
Я бы советовал сначала почитать литературу по программированию. Такое чувство, что вы надёргали куски кода, толком не понимая, что именно эти куски делают.
Допустим, вы сначала открываете файл с параметром QIODevice::WriteOnly, а чуть ниже пытаетесь из него читать с помощью readAll (видимо, не совсем понимая, как работает QTextStream)
С потоками та же беда.
Кстати, зачем они вам там? Почему бы вам просто не создать GuessTheNumber_WithGraphics и использовать?
потоки для того что бы следующий уровень открывался при прохождении предыдущего
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #8 :
Июнь 21, 2023, 18:22 »
Цитата: kambala от Июнь 21, 2023, 18:04
абсолютно неочевидно зачем для этого другой поток
что бы подождать конца прошлого уровня(поток)(уровень = поток)
«
Последнее редактирование: Июнь 21, 2023, 18:37 от Noize_programmer
»
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #10 :
Июнь 22, 2023, 15:48 »
Цитата: kambala от Июнь 21, 2023, 19:05
а что мешает выслать сигнал при окончании уровня и обработать его в этом же потоке?
пытался но так и не понял как это сделать
может подскажете?
(
проблема не из-за потоков а из-за функции 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
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #12 :
Июнь 23, 2023, 12:48 »
Цитата: kambala от Июнь 22, 2023, 21:51
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
Сообщений: 4747
Re: помогите пожалуйста (game dev)
«
Ответ #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
Сообщений: 91
работает не трогай
Re: помогите пожалуйста (game dev)
«
Ответ #14 :
Июнь 23, 2023, 17:04 »
Цитата: kambala от Июнь 23, 2023, 15:38
не сильно понятно что там где происходит. в месте, где у тебя заканчивается уровень, надо сигнал выслать, чтоб обрабатывающий сигнал вызывал твою функцию set.
спасибо игра не закрывается
Записан
Официальная стандартизация языка с++ началась в 1998 году, когда был опубликован стандарт языка ISO/IEC 14882:1998(известный как C++98), разработанный комитетом по стандартизации C++(ISO/IEC JTC1/SC22/WG21 working group)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...