1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
||||||
1 | ||||||
Переписать код C# под Python08.05.2017, 15:50. Показов 5581. Ответов 137
Метки нет (Все метки)
Я сделал игру в VisialStudio. Мне велели переписать код под Python я не спец по нему. Пожалуйста помогите!
0
|
08.05.2017, 15:50 | |
Ответы с готовыми решениями:
137
Переписать код на Python Переписать код C# под Python Переписать код C# на Python Переписать код С++ в Python Переписать код c Python |
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
13.05.2017, 19:06 [ТС] | 42 |
Ошибка Вызов неизвестной функции
0
|
13.05.2017, 21:25 | 43 |
Всё в порядке! Нужно положить рядом с .py скриптом библиотеку freeglut.dll, которую можно скачать из этого сообщения
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
13.05.2017, 22:07 [ТС] | 44 |
freeglut.dll для чего она?
А да мой результат ниже, похоже это успех!
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
13.05.2017, 22:21 [ТС] | 45 |
Можно сделать проект вместе с вами до конца я бы смог разобраться с Питоном??
0
|
13.05.2017, 23:35 | 46 |
Да, давайте в вашей теме будем писать и выкладывать код. Только обязательно нужно выкладывать целиком, чтобы не путаться куда вставить кусок, а сразу скопировать->вставить->запустить->увидеть результат.
Как у вас с английским? Если можете читать, то советую прочитать и выполнить, что написано в этих инструкциях, они не очень большие: https://noobtuts.com/python/opengl-introduction https://noobtuts.com/python/snake-game Если возникнут какие-то ошибки во время их выполнения, то сразу пишите сюда. Можно вместе сделать проект. И вам и мне польза. Добавлено через 2 минуты В этой dll тела функций, которые начинаются с glut: glutInit() glutInitDisplayMode(...) glutInitWindowSize(width, height) glutInitWindowSize(width, height) window = glutCreateWindow(b"Rectangles And Lines") и т.д.
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
13.05.2017, 23:57 [ТС] | 47 |
Я попробую прочитать и выполнить что в этих инструкциях, но к сожалению уже сегодня поздно, отпишусь об успехах завтра или о не успехе ))
Вот последнее если вас не затруднит распишите подробнее пожалуйста, я вижу WindowSize (ширину и высоту)а что делают остальные функции? Для перевода предлагаю разделить пополам весь код, кто-то может начать с середины, но сначало какую-то часть нужно сделать вместе, если я пойму логику то буду пытаться делать, как по накатанной
0
|
14.05.2017, 01:13 | 48 | |||||
По поводу вашего проекта на C#. Там у вас применяется ООП. Советую посмотреть этот первый урок, как создавать классы на Python: Python Essential. Урок 1. Введение в ООП Python
Кликните здесь для просмотра всего текста
Добавлено через 1 минуту Да, в первую очередь завтра их попытайтесь выполнить. Добавлено через 40 минут Пока особо концентрироваться на них не нужно. Достаточно того, что написано в комментариях. Эти строчки копируются из проекта в проект копипастом, но не все их них всегда нужны, и есть которые мы пока не использовали и может быть не будет использовать.
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH) - здесь настройки вывода на экран. Можно эти функции искать в поисковике интернета glutInitDisplayMode Важно ещё понимать, что GLUT_RGBA, GLUT_DOUBLE - это шестнадцатеричные константы, операция '|' - это побитовое ИЛИ. Я надеюсь, вы понимаете о чём речь. GLUT_DOUBLE говорит о том, что используется двойной буфер вместо одиночного GLUT_SINGLE и поэтому нужно использовать функцию glutSwapBuffers() в конце рисования. Дело в том, что у OpenGL есть два буфера: передний и задний. Пользователь видит на экране содержимое переднего буфера. Сначала всё рисуется на заднем буфере, а после вызова glutSwapBuffers() передний и задний буфер меняются местами. Это чтобы не видеть процесс рисования, а то будет мерцание. Остальные настройки GLUT_ALPHA и GLUT_DEPTH пока не важны. glutInitWindowSize(width, height) - здесь мы задаём размер окна. Переменные width, height заданы в самом верху программы. glutInitWindowPosition(0, 0) - тут задаём где появится окно. Попробуйте задать другие значения, например (500, 100). Очень важно и интересно всегда экспериментировать, чтобы понять, что делает функция. На практике лучше понимается и запоминается. window = glutCreateWindow(b"Snake") - тут мы создаём окно и сохраняем ссылку на него в переменной window. Функции передаём название, которое будет отображаться в заголовке окна. Символ b указываем, чтобы превратить строку в массив байт, потому что данная функция из Си и она работает с массивом байт. glutDisplayFunc(draw) - мы указываем, что функция draw(), которая создана нами, должна использоваться, как функция, которая будет вызываться каждый раз, когда GLUT захочет перерисовать всё, что находится в клиентской области окна, то есть перерисовать окно. Но пока она не будет вызвана, пока не запущен главный цикл окна glutMainLoop() - эту функцию (glutMainLoop) нужно вызвать к конце и инициализации библиотеки FreeGLUT. glutIdleFunc(draw) - помоему, так мы указываем, что нужно вызывать draw постоянно, возможно как минимум 60 раз в секунду. Надо ещё уточнить по документации. Но пока это неважно. Если её закоментировать, то например, змейка перестаёт нормально работать. Когда сделаете тутор со змейкой, то попробуйте закомментировать эту строку glutTimerFunc(interval, update, 0) - указываем, что после запуска главного цикла окна (glutMainLoop) нужно с интервалом interval вызывать функцию update, которую мы сами написали. В случае со змейкой значение interval = 200 (миллисекунд). В змейке interval = 200 - находится в самом верху текста программы. glutKeyboardFunc(keyboard) - указываем, что после запуска главного цикла окна (glutMainLoop) функцию keyboard (которую мы сами написали) вызывать каждый раз при нажатии какой-либо клавиши. glutMainLoop() - запускает клавный цикл окна. Всё время нужно копировать имя непонятной функции в поисковик интернета и находить описание в документации. Там в описании могут быть важные нюансы Добавлено через 12 минут Да, хорошая идея. Очень важно, что у вас заработало, а то я даже в какой-то момент испугался, что не получиться получить этот опыт вместе. Один может я бы и переписал, если не забыл бы, но вместе интереснее. И такая интересная тема могла уйти в небытие, а ей рано ещё, пока не закончим ваш проект. Но ещё, я считаю, очень важно, чтобы вы выполнили те туторы. Без них я бы многое не понял. Добавлено через 19 минут Можно, как справочник использовать эту книгу на русском: OpenGL Суперкнига - Р.С. Райт, В. Липчак В самом конце книги есть "Предметный указатель". По алфавиту находите, например, "glutReshapeFunc, 111". Вводите номер страницы (в данном случае 111) для перехода и читаете на русском описание, что делает данная функция.
0
|
17.05.2017, 16:00 | 49 | ||||||||||
Я переписал класс Cell и добавил простой аналог C# класса System.Drawing.Point. Пока не знаю, если аналог автосвойств, поэтому сделал полями. Вот какую работу я проделал за эти 3 дня
Для сравнения:
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
17.05.2017, 22:56 [ТС] | 50 |
Я смотрю уроки по ООП на Python и читаю книгу которую вы дали по графике, ближе к концу недели я тоже попробую перевести какой-нибудь класс начну с конца. Уроки классные по ООП - груша,яблоко объект, а фрукты это класс и сразу все понятнее ;-)
0
|
18.05.2017, 18:47 | 51 | ||||||||||
Не бросайте смотреть/пересматривать и читать, но не забывайте, что знания лучше всего закрепляются в памяти, если вы пытаетесь снова и снова их применять на практике из головы. Уже можно начинать уделять время практике, так как в C# проекте нет наследования от абстрактных классов.
Аналог свойства только для чтения:
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
||||||
21.05.2017, 14:21 [ТС] | 52 | |||||
При запуске спотыкается на первой строке же
0
|
Администратор
|
|
21.05.2017, 14:42 | 53 |
Неудивительно, что спотыкается. Что эта строка там вообще делает?
Скопировали криво. Смотрите внимательней
1
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
21.05.2017, 15:02 [ТС] | 54 |
Да спасибо за подсказку, но при сборке тогда Studio просто черное окно выскакивает на секунду, ничего не вырисовывает, не думал что за темой вообще следят
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
21.05.2017, 15:03 [ТС] | 55 |
Ошибка
0
|
21.05.2017, 16:28 | 56 |
Тот же самый текст ошибки, что и в сообщении #42, смотрите, как вы там решили проблему.
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
||||||||||||||||
21.05.2017, 17:50 [ТС] | 57 | |||||||||||||||
Нужна помощь с проверкой
0
|
21.05.2017, 19:27 | 58 |
Я знаю, что вы пишите в Visual Studio. Как у вас так получилось, что вы писали комментарии, начиная их с "//", а не с решётки "#"? Ты просто не обращали внимание, что студия подчёркивает красным? И ещё почему у вас "Class" начинается с большой буквы? Вы лучше переписывайте и выкладывайте, когда код запускается. Такие ошибки можно исправить самостоятельно, наведя курсор на то, что подчёркивается красным. А если не подчёркивает, то запустите на выполнение.
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
||||||
21.05.2017, 21:10 [ТС] | 59 | |||||
0
|
1 / 1 / 0
Регистрация: 09.12.2016
Сообщений: 99
|
|
21.05.2017, 21:22 [ТС] | 60 |
Студия не подчеркивает ни класс с большой буквы ни комментарий
0
|
21.05.2017, 21:22 | |
21.05.2017, 21:22 | |
Помогаю со студенческими работами здесь
60
Переписать код с VB на Python Как переписать код с++ на python Переписать код с Delphi на Python Переписать код с Pascal на Python Нужно переписать код на Python Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |