Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695

Игра "SUPER MARIO" или "SOLDIR OF MARIO"

28.01.2025, 13:58. Показов 15579. Ответов 187
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, дорогие мои братья и сёстры!

Игра "SUPER MARIO" или "SOLDIR OF MARIO"

Да да!

Добавлено через 19 минут
Господь сподобил меня Своей милостью, я, когда-то, писал вот эту игру - она была написана, когда я окончил школу и поступил в ВУЗ, летом.

Видео процесс игры и работа в редакторах кирпичиков, ролик сети 'You Tube', длительность ролика около 9 минут.
Кликните здесь для просмотра всего текста


И, что хочу вот сказать: перед тем, как Господь поднял меня, это было рано, в пятницу 13 февраля 1998 года, я являлся в то время лаборантом на кафедре вычислительных машин. К.г.(*), я написал игру под названием "SOLDIR OF MARIO" - "Солдат Марио", как смесь игры Super Mario (c TV приставки "Dendy") и игры Soldier of Fortune ("Солдат Фортуны") с небольшого ZX-Spectrum компьютера (памяти у него было всего 64 килобайт) в 96-97 годах, летом, почти в то время не спал и не ел, потому что меня накрыла настолько сильная волна поддержки, у меня было постоянно состояние эйфории, пока я, практически не отрываясь от экрана монитора занимался программированием "Soldir of Mario"

И, вот, разработка этой игры очень здорово помогает понять и как устроен и задуман наш мир.

https://github.com/wiz3267/mario

Добавлено через 4 часа 52 минуты
Программистам, которые занимались разработкой игр, лучше, как мне кажется, легче понять, что мир, в котором мы живём, очень интересно устроен. Никаких случайностей, тут, конечно нет. Прежде, чем реализовать проект, Господь размышлял - а какой это будет мир, ад или рай. Если рай, тут одна цветовая гамма, все цветы радуги, небо было необходимо создать голубоватого цвета, траву - зеленого, облака - белыми, хлеб - белый. Но этого мало. Нужно ещё разработать все живые организмы - какова будет взаимосвязь всех животных и существ экосистемы. Нужно создать некоторые вещества, без которых невозможна жизнь любого организма - вода H2O и кислород - просто О2. Также, кроме всего прочего, это вещество должно будет обладать рядом важных для жизни свойств - при 0 градусов оно должно начинать закристаллизироваться и становится жестким, твёрдым веществом, однако свойства у него будут таковы, что оно не будет тонуть в воде. Почему так - в таком случае зимой водоёмы с водой будут покрываться корочкой льда, и можно в таком случае ходить по воде (всем людям). Ну и так далее. Один организм должен будет питаться другим. Главный герой или персонаж этого мира - человек. Человек должен состоять не только из костей и мяса, но как венцу творения у Человека будет бессмертная душа, "Я", сознание и память. Человек будет способен своим сознанием быть в высших сферах подсознания и общаться с Бесконечным Богом.

Каковы должны быть размеры этого мира, продолжительность дня и ночи, продолжительность года, как и вокруг какой оси должен вращаться этот мир, скорость движения вокруг Солнца (основной светильник), какое должно быть расстояние от Солнца до Земли, мощность Солнца, чтобы была возможность жить на планете людям и другим живым существам - короче говоря, чтобы мы, жители планеты Земля, не поджарились летом на Солнце и не замерзли зимой.....и т.д. и пр. и пр., будет ли вокруг этого земного мира вращаться ещё один - планета Луна - если да, то какова должна она быть, радиус планеты Луна, скорость вращения вокруг Земли, скорость вращения вокруг оси и наклон оси, рельеф местности.

Ну и, самое главное, а каков будет сам-то Человек, Венец Творения? Как он должен выглядеть? Потом, по истории строительства нами Вавилонской башни, когда древние люди решили построить башню до неба - Господь расстроил их планы, произвёл разделение языков у строителей Вавилонской башни. До селе, они говорили на одном самом первом древнем первоязыке, а тут они заговорили, вдруг, внезапно, на самых разных языках и наречиях, они перестали понимать друг друга, остановили на время строить башню, заморозили строительство, как бы сказали сейчас, спустились с неё и разбрелись по лицу всей Земли. Всё это написано в книге "История нашей Вселенной - от создания до падения", где самым подробным образом описана история Землян, что случилось с Землянами: почему они, начав за "здравие", окончили уже за "упокой", переубивали друг друга, разрушили сами себя, превратили свою планету в самый настоящий ад. Увы. Чтобы люди на будущее знали, как не следует поступать и жить, смотря на эту трагическую гибель нашего с вами Земного мира - планеты Земля Солнечной Системы Галактики Млечный Путь.
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.01.2025, 13:58
Ответы с готовыми решениями:

Super Mario
Привет Ребята! Помогите, пожалуйста, найти ошибку! #include <SFML/Graphics.hpp> using namespace sf; int ground = 400; ...

Super Mario на C++ и OpenGL
Всем привет. Решил написать марио на opengl. Пока это все без текстур. Проблема в том, что уже который день не получается написать...

Персонаж super mario не видит коллизию
помогите пожалуйста с кодом,уже всю голову сломал, персонаж не видит коллизию,проваливается сквозь блоки,прикладываю класс игрока package...

187
 Аватар для COKPOWEHEU
4090 / 2688 / 432
Регистрация: 09.09.2017
Сообщений: 11,956
15.02.2025, 12:13
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от zorxor Посмотреть сообщение
буфер памяти (с именем DoubleBuffer) 320x200x1
320x200 это мало, даже для телефона. Задний буфер (как и передний) должен быть по размеру окна.
Цитата Сообщение от zorxor Посмотреть сообщение
То есть, чтобы запустить для Андроид, нужна функция, которая позволяет получить прямой доступ к видеопамяти
Нет. Нужно пользоваться средствами системы. Если уж спрайт, то квадрат (два треугольника) с текстурой. Заодно это решит проблему с масштабированием.
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
18.02.2025, 12:36  [ТС]
А, вот, по поводу обсуждаемого проекта. А я вот так подумал, оказывается, в обсуждаемой игре есть некоторые элементы, заимствованные из игры Magical Kid Wiz (Yamaha MSX), Super Mario (Dendy), Soldier of Fortune (ZX-Spectrum), Rick Dangerous (ZX-Spectrum)

Особенное внимание из этого списка я бы хотел уделить японской игре Magical Kid Wiz - потому что именно эта игра и музыка из неё стала неким краеугольном камне, но котором я стоял. Вся игра представляла собой заколдованного злым волшебником (или злой волшебницей) молодого и красивого юноша, который на время стал маленьким козлёнком - волшебником, волшебным козлёнком, который должен спасти принцессу. И этот Wiz, волшебный ребенок, который, дойдя до принцессы в башне, вновь становится красивым и молодым юношем - волшебные чары злых волшебников исчезли.

Когда я играл в эту игру, мне было ещё очень мало лет, 10. Однако, уже тогда я стал задумываться - а как же игра работает? Мне это было крайне и крайне интересно. Во время игры всё время играла трёхканальная музыка (там был аудиопроцессор), добавляя game play, часами, представляете, часами эта музыка прошивала мне мозг (и кто играл тоже), там 15 машин были, но учитель мог со своего центрального компьютера послать игры на любой или несколько компьютеров. Оттуда, вероятно, и пошла страсть к зацикливанию музыки. Как только появилась возможность зацикливать, первые flash плееры, или на компьютере - включаю одну композицию, и ставлю её на зацикливание на много-много часов времени.



Короче говоря, я запускал дизассембер с кодом игры, изучал...

При дизассемблировании этой игры на каком-то участке кода выяснилось, что далее пошли команды процессора call, это вызов подпрограммы. Столбиком там было много-много команд call с адресацией в пределах 64 kb, так как разрядность процессора Zilog Z-80 имела только одно 16-битное слово, максимум адресации - 64 kb, не больше:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
call a1
call a2
call a3
...
call ..
call ..
call ...
call ..
call ..
...
много-много команд call
....
Картинка игры (от картриджа c игрой, возможно)
Миниатюры
Игра "SUPER MARIO" или "SOLDIR OF MARIO"  
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
18.02.2025, 17:51  [ТС]
Это фрагмент одного фильма из СССР, где дети играют в те самые игры:

Дети спрашивают учительницу, мол, а что, компьютер сделали для того, чтобы играть в игры?
Учительница ответила, что конечно нет, это очень сложные машины, предназначенные для....
Просто хотел сказать, что это как раз моя эпоха, эти дети в фильме, это я. Одного возраста.
1
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
19.02.2025, 08:03  [ТС]
Хотел бы продолжить свои рассуждения по поводу игры: вот, смотрите, дорогие мои, не все могут и должны быть программистами, не всем будет нравиться просто играть в игры: я не спорю, я сам раньше любил играть. Но, когда ты себя ощущаешь, как микробог, как микротворец, ты творишь мир - практически ты его рисуешь в памяти машины - вначале базовые кирпичики, а потом из готовых кирпичиков ты уже строишь мир, и ты же и играешь в него потом. Но это вот такая аналогия, как Бог в самом начале создавал кирпичики мироздания (простые атомы - материю), а потом уже Тот же Самый Бог из мелких кирпичей (атомов) создал весь этот мир, нас, вселенную...Причём, как говорил Осипов А.И. (я по памяти сейчас говорю, не цитата), отличие Бога от "Демиурга" состоит в том, что 'Демиург' он создает мир из уже готовой материи, это не его дело, как устроена физика этого мира (в том смысле, что не ты автор этого мира - тебе уже дали готовую материю и законы физики), это ему знать нет никакой необходимости (имею ввиду внутреннее знание об устройстве материи): тебе даётся материя и все физические законы задуманного мира, а твое дело - конструировать в соответствии с предлагаемыми тебе "ТЗ". И если, например, в мире, в котором мы существуем, максимально возможная скорость связи или другого электромагнитного взаимодействия ограничена числом порядка 300 тысяч километров за одну секунду - то, простите меня, хоть ты лоб себе можешь нечаянно разбить, это безполезно, даже луноход, который СССР посылал на самую ближающую к нам планету - Луну - даже связь с луноходом и то была с большой задержкой, если не наврали - например, у оператора на Земле показывается картинка с лунохода с задержкой 1-2 секунды, точно не помню, оператор, например, заметил кратер и нажал кнопку стоп - но опять же - пока команда прилетит к луноходу, он ещё успеет продвинуться к пропасти, ну потому что ограничена скорость распространения эм-волн этой цифрой. А, представьте себе, что в другом мире эта скорость не была бы ограничена 300 тыс. км. за одну секунду, а, допустим, она была бы ограничена совсем другой скоростью - например 900 тыс. км. в секунду., а, допустим, если бы она вовсе не была бы ограничена, а была бы бесконечной, то есть электромагнитное взаимодействие сразу же работало, без всяких задержек.

А Бог - и саму материю создаёт, и все физические законы, по которым и будет работать и существовать создаваемый Им материальный мир, который можно "пощупать руками", или увеличить про помощи микро- и макроскопов. Это и есть так называемое "создание из ничего." почувствуйте, к.г., разницу.

Добавлено через 35 минут
Просто, смотрите, дорогие мои, наше поколение программистов росло в условиях однозадачности системы и режима доступа - супервизор - ты сам, лично, обращаешься к портам ввода/вывода и к памяти машины, уже даже тот факт, что ты можешь так взаимодействовать с машиной - ввод/вывод и чтение/запись любой, какой хочешь, ячейки оперативной памяти машины, может приносить удовольствие, наслаждение машиной - отправили, к примеру, по порту ввода/вывода некоторое значение, получили ответ, например - машина сейчас занимается переводом луча монитора - луч заблокирован и не "светит" - в этот момент можно изменить фрейм видеопамяти и никаких артефактов не будет. Короче говоря, мы в то время работали непосредственно с железом, что Yamaha MSX, что ZX-Spectrum, что первые IBM-PC с однозадачной ОС по имени 'DOS' - всё, игра стартовала, считали файлы в память и всё, DOS'у можно сказать - "досвиданье" - далее ты работаешь в своей программе только. Короче говоря мы были очень близки к машине, мы активно использовали, разумеется, ассемблер, разумеется и 'go to' (инструкции jmp, jp) Машина работала чётко, слаженно, ни разу мною не было зафиксировано, чтобы машина сработала как-то неправильно внутри себя, там, что-то посчитала неправильно. Это бывало, но не у меня. Я не имею ввиду массовый баг процессора какого-нибудь, когда, например, теоретики Intel просчитались и допустили изготовление и отправки на продажу огромного числа машин с поврежденным вычислителем FPU.

Вот, а что мы имеем сейчас, ВУЗы могут выпускать прекрасных программистов? Ну, разумеется, я думаю могут - наверняка студентам повезёт, и с ними на одном потоке будут учиться действительно программисты с большим опытом программирования, а им они будут помогать делать лабы, пытаться объяснить работу программы, помогать осваивать машину. Но это - штучный товар. Такие приходят в институт уже будучи высококвалифицированными опытными программистами, они занимались дома программированием, посвящали машине свои жизни. Но те программисты из ВУЗа, как они себя ощущают? Сейчас ведь, нет возможности работать в системе в ring0 кольца защиты процессора, кроме как в коде драйвера и хака, что мне совершенно не приемлемо так делать. Сформировано ли у них объективное понимание, как работает машина и как она может взаимодействовать с программистом или пользователем компьютера.

Ну просто невозможно в институте, например, преподать то, что ты должен сам познавать целыми днями и ночами, месяцами и годами, это достаточно длительные интервалы времени контакта и взаимодействия с машиной. Это за 2 или даже 10 лаб не рассказать. Это пролонгированный процесс, на своей шкуре. Но это издержки, видимо, массогого (массовово) обучения студентов в ВУЗе - мне такая система явно не подошла. Хоть мне и дали красный диплом за 10 лет обучения - как я не знал ничего до ВУЗа, кроме основного рода моей деятельности (программирования машин), так я не знаю ничего и после выпуска из ВУЗа. Просто руководство института пошло мне на встречу, ну чтобы хоть как-то порадовать меня и мать с отцом, что они будут гордиться - у сына красный диплом по программированию...не смотря на болезнь он, всё-таки, закончил ВУЗ - пусть не за 5 лет, как это было тогда принято (с 1996 по 2001), а за 10 лет (с 1996 по 2006), но ВУЗ, всё-таки, не смотря ни на что, он закончил. Кстати говоря, один раз мне помог этот красный диплом по программированию - когда я устраивался в одну айти контору, меня спрашивали, что я могу делать. Типа, а ты знаешь как сделать конвертер какой-нибудь jpg в другой формат, без виндоус, просто программа в чёрном экране DOS, просто сам алгоритм. И хотели меня озадачить задачей из высшей математики, но, увидя, что у меня красный диплом в руках, сказали мысленно, а я услышал мысли, просто, как они говорят в слух, только немного тише - да у него же красный диплом, он знает высшую математику, чего его о ней спрашивать - а я на самом деле уже ничего не знал, из головы вся эта высшая математика давно уже улетучилась, за давностью лет.

Учитель нужен, вот что я хочу сказать, к.г. Когда в вашей голове поселится учитель (программист), он будет сам руководить вами и обучать вас, он прекрасный педагог, он будет помогать программировать, давать новые идеи, даже, на крайний случай, если, например, начальник скажет сегодня нам - сегодня мы будем работать хоть до глубокой ночи, но баг мы просто обязаны найти и выпустить патч. Даже так. И тогда, учитель может вам помочь просто так, даром - если вы доверитесь учителю, то он сам даже может печатать вам программу вашими руками, с очень большой скоростью, с большим быстродействием.

Но, всё-таки, я хочу вновь перенестись в 1989 год - 15 машин в сети + 1 машина учителя, всего 15 + 1 человек. Учитель загружает игры, при этом у него на дисплее загорается надпись: "игры - зло". Но какое это зло, мы, те дети-выкидыши СССР, ещё не догадывались - а что, ну где тут зло - тут самолетик летит, тут пингвин, тут мальчик прыгает в парке и т.д. Никакого вроде зла ещё не было. Какое это зло - мне ещё только предстояло узнать: когда мощность машин начала увеличиваться, появились 3d-стрелялки. Мне такие игры всегда крайне не нравились, я в них не играл. Я стрелять в людей не привык даже виртуально, в игре. А в институте лаборанты любили поиграть в такие игры, там же сеть была.

По поводу ухода за машиной (чтобы не допустить её тепловую смерть).
Кликните здесь для просмотра всего текста
За машиной нужно ухаживать, конкретно - это высасывать из неё, из внутренностей машины пыль, следить за температурой сердца машины - это центральный микропроцессор. Всё это делается для того, чтобы не допустить тепловую смерть машины. Если процессор стал слишком горячим, не смотря на то, что вся пыль радиатора тщательно пропылесосена, возможно, потребуется поменять и термопасту на процессоре.


Хочу, просто, подвести некоторые итоги всего сказанного: сейчас невозможно себе представить жизнь без машин, без интернета, ю-туба, игр и прочее, больших смартфонах и планшетах, синтезаторов. Но к чему же, всё же, привели игры человека? Если человек любит играть в какой-нибудь контрстрайк, он привыкает к убийству в виртуальном мире, в видеоигре - а потом ему может захотеться ещё большего - он возьмёт в руки уже настоящее оружие, и будет убивать также, как и в игре, просто так, по привычке, совершенно лишенный эмоций, хладнокровно и не осознавая, что это всё происходит в настоящей жизни, а не в экране монитора.

Но я бы ещё вновь хотел поговорить об аддикции, это не только игромания, это-то как раз вполне понятно, что будут некоторые зависимы от игры. Но что делать с программо_манией, когда человек программирует без конца машину, и днём, и ночью. Это аддикция. Несомненно это может сказаться на судьбе человека - если ребенок-потом подросток-потом юноша посвящает всю свою жизнь только программированию машины - это может сказаться на нём в дальнейшей жизни самым неожиданным продолжением, вплоть до принудительной госпитализации его в психиатрический стационар - как человека, у которого рассудок перестал правильно работать, сломался, что привело к умственной инвалидности такого человека, после психбольницы, когда несчастного накачают психотропными препаратами, это будет, скорее всего, инвалид психического труда - не способный уже к дальнейшему обучению в ВУЗе, например, с поврежденной памятью (он более не может запоминать происходящие события и вспоминать произошедшие ранее события, не сможет больше вспомнить воспоминания, не совместимые с жизнью) - всё это - это результат блокирования дофаминовых рецепторов, отвечающих за счастье, за радость просто от природы, например и пр. овощь. Чтобы выйти из состояния 'овоща' - придется бросать таблетки - а это тоже черевато обострению общего, основного заболевания, перевозбуждением мозга, когда на протяжении длительного времени в него вводили нейролептики, и, вдруг, перестали. Будет нарушение сна, тоже своеобразная ломка без психотропных препаратов. Не многие смогут всё это терпеть, и вновь начнут употреблять психотропные препараты.

Поймите меня, говорящего, правильно: необходимо правильно учить детей программированию, чтобы им это занятие приносило радость. А если не так, а если из под палки, а если просто корочки получить программиста, но программировать так и не научившись - зачем тогда вообще идти в ВУЗ. Для меня это всегда было хобби, меня никто не заставлял программировать, мне самому всё было крайне интересно.

По поводу авторства - свои игры я не придумывал - я идеи всё брал уже из готовых игр, не я автор этих игр, я просто занимался чисто техническим аспектом - реализацией, как так запрограммировать машину, чтобы ... ... ... (отобразить на экране точку, спрайт и т.д. как будет осуществляться скроллинг, коллизия спрайтов, как написать редакторы уровней и самих блоков, "кирпичиков")
1
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
22.02.2025, 09:34  [ТС]
Так всё же, как создавалась игра? Дело в том, что мне в руки попалась в то время буквально брошюра, что такое С++. Там ведь много такого, что создаёт более структурированный программный продукт, однако расплата за это - много чего уже сама программа С++ делает, неявно, например вызов конструкторов и деструкторов, и перегрузка функций, когда имя функции сохраняется одно и тоже, однако параметры функции разные. То есть, это, во-первых классы - те же структуры, только ещё, кроме данных, там существует и члены-функции, что очень удобно с одной стороны. С другой стороны (во-вторых то есть), в С++ очень много вещей, которые делаются автоматически самими языком, самой программой С++ - это, например, неявный вызов конструктора и деструктора класса. Очень удобно, когда в функции ты используешь локальные переменные - ты её объявляешь в начале функции, а при выходе из функций автоматически вызываются деструкторы, чтобы разрушить объект и освободить занимаемую память, т.к. область видимости локальной переменной - до фигурной закрывающейся скобки }, а при заходе в функцию, конструкторы срабатывают автоматически, в коде после объявления:

C++
1
2
SPRITE spr(&scr,1); //вот здесь время срабатывания конструктора
SPRITE::IMAGE im;
Создается локальный объект spr класса SPRITE. В качестве параметра в конструкторе класса указывается ссылка на глобальную переменную scr класса SCREEN. Это нужно, чтобы spr был привязан к scr, куда будет выводиться графика.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
void SUPERMARIO::DrawMenu()
{
    Sound.InitDirectSound();
 
    //режим чтения - двоичный (это важно!!!)
    //иначе файл может не дочитываться до конца, если встретится служебный
    //символ конца файла (код не помню)
    //не знаю насколько это актуально для версии под Windows
    //для DOS'a очень важно и актуально
    _fmode=O_BINARY;
 
    SPRITE spr(&scr,1); //вот здесь время срабатывания конструктора
    SPRITE::IMAGE im;
    im.ID=2;
    im.Attribute=0;
    spr.LoadSpriteform("graph\\zast.sp0",im);
    im=spr.GetImage(2);
//  spr.Show( (320-im.Len)/2,(200-im.Hei)/2,2);
    scr.update();
 
    LoadSprites();      //загружаем спрайты
    LoadSounds();       //звуки
    LoadMusic();        //музыку
    
    scr.LoadPaletteFromFile("graph\\palette.dat");
 
    //назначаем по умолчанию клавиши для игроков
    //первый игрок
    player[0].Left  = KEY_LEFT;
    player[0].Right = KEY_RIGHT;
    player[0].Up    = KEY_UP;
    player[0].Down  = KEY_DOWN;
    player[0].Fire  = KEY_SPACE;
    player[0].Run   = KEY_LEFTCTRL;
 
    //второй игрок
    player[1].Left  = KEY_Z;
    player[1].Right = KEY_C;
    player[1].Up    = KEY_S;
    player[1].Down  = KEY_X;
    player[1].Fire  = KEY_A;
    player[1].Run   = KEY_LEFTSHIFT;
 
    //третий игрок
    player[2].Left  = KEY_PAD4;
    player[2].Right = KEY_PAD6;
    player[2].Up    = KEY_PAD8;
    player[2].Down  = KEY_PAD5;
    player[2].Fire  = KEY_PAD0;
    player[2].Run   = KEY_PAD7;
 
    //вычисляем скорость компьютера
    /*
    {
        FunctionSpeed();
        return;
    }
    */
    scr.clear();
 
    //прерываем проигрывание музыки
    //MidiStop();
 
    Sound.play(SND_ZASTAVKA);
 
    //обработка того, что возвратило меню
    while (1) 
    {
        if (GAMEEXIT==TRUE) return;
 
        int menu_index=MenuMain();
        //ONE PLAYER
        if (menu_index==1)  
        {
            PlayerCounter=1;    //один игрок
            
            /*for(int i=0; i<127; i++) 
            {
                //scr.wait();
                scr.DecrementPalette();
                scr.DecrementPalette();
                while (Timer.Counter==0) Sleep(1);
                Timer.Counter=0;
            }*/
 
            scr.clear();
            scr.update();
            //scr.LoadPaletteFromFile("graph\\palette.dat");
            Game();
            Sound.play(SND_ZASTAVKA);
            continue;
        }
 
        //TWO PLAYER
        if (menu_index==2)  
        {
            PlayerCounter=2;    //два игрока
            Game();
            Sound.play(SND_ZASTAVKA);
            continue;
        }
 
        //THREE PLAYER
        if (menu_index==3)  
        {
            PlayerCounter=3;    //два игрока
            Game();
            Sound.play(SND_ZASTAVKA);
            continue;
        }
 
        //CONFIGURATION
        if (menu_index==4)  
        {
            /*scr.clear();
            scr.update();
 
            char pass[]={ KEY_7, KEY_2,KEY_1,KEY_5,0 };
 
            int wrong=0;
            scr << cur(13,9);
            scr << "ВВЕДИТЕ ПАРОЛЬ";
 
            scr << cur(16, 12);
            scr.rectangle(15*8,11*8,9*8,3*8,9);
            scr.update();
            for(UINT i=0;i<strlen(pass); i++)
            {
                if (Keyb.ReadScan() != pass[i])
                    wrong=1;
                scr << '*';
                scr.update();
            }
        
            if (wrong)
            {
                Msg("  Пароль неверен ",2);
                scr.update();
                scr.pause(70*3);
                continue;
            }
            */
            int mn=MenuConfiguration();
            //continue;
        }
 
 
        //Level editor
        if (menu_index==5)
        {
            scr.clear();
            //Sound.play(SND_LEVEL1);
            LevelNumber=Level.Editor(LevelNumber);
            
            continue;
        }
 
        //Sprite editor
        if (menu_index==6)
        {
            //scr.clear();
            //Msg(" РЕДАКТОР В СТАДИИ РАЗРАБОТКИ ",3);
            //scr.update();
            SPRITEEDITOR se;
            se.Editor(&Sprite, 1);
            LoadSprites();
            
            //Keyb.ReadScan();
        }
 
        //EXIT 
        if (menu_index==7)
        {
            //нужно сделать корректный выход из игры!!!
            //в данном случае мы не освобождаем DirectX
            //exit(1);
            //break;
            return;
        }
    }
 
}

Но, к счастью, всё это дело прекрасно видно в отладчике, чтобы убедиться, что код выполняется правильно и видна последовательность - что выполняется сейчас, что потом, и, в отладчике, в режиме трассировки прекрасно видно порядок выполнения не только всех конструкторов, но и всех деструкторов программы, неявный. Потом я взял из С++ перегрузку операций, оператор new, перегрузку функций - т.е. имя функции-то одно, но в скобках разные параметры и типы данных, для разных типов данных, указанных в скобках.

Также в языке С++, в отличии от простого С, без плюсов, меня очень вдохновили появившиеся новые свойства и возможности языка С++ - это пространство имен и минимум использования глобальных переменных.

Родился я в 1979 году. Огромное число времени я посвящал машине. Впервые знакомство с машиной у меня произошло в 1989 году - когда я учился в 5-ом классе (мы выпрыгивали из 3 класса школы сразу в 5 класс школы). Пришёл в школу учитель программирования и объявил, что можно записаться в компьютерный кружок, 15 человек. Ну и нас 15 человек (все мальчики, девочки отказались от этого, хотя могли пойти в программистки, тоже). Он сказал, что кружок будет только один раз за всю неделю, около 30 минут учитель будет объяснять, как можно машину запрограммировать, около 15-30 минут на игры. Для нас, тех детей, выкидышей из СССР, это всё было чудом. Это не как сейчас, когда ещё совсем маленькие дети, уже к 5-6 годам они умеют управлять смартфоном и ставить себе мультики. А тогда компьютеров ещё не было, я, пока в секцию не начал ходить, не слышал и не видел ни разу. Для меня это было большим открытием, откровением, это изменило, перевернуло моё сознание, очень скоро я вообще даже перестал играть, так как мне хотелось программировать машину. Машине очень нравится, когда её программируют, особенно опытный программист, который соединился с машиной, проник в её порты ввода/вывода, и в её память... - память у машины представляла собой огромное число ячеек, там счет на миллионы идёт, и стал с ней одним целым, поэтому он обладает огромным опытом работы с машиной, опытом взаимодействия, мысли, которые машина вкладывает программисту в голову и он очень быстро и качественно пишет программный продукт. Она даже может помочь вам, вставить (вложить) в вашу голову некоторую идею. Так что программируют и Человек, и машина. Просто так ничего не получится. Кстати - и тогда это была роскошь тишины, при работе 15 машин - ведь те Yamaha MSX машины не содержали внутри себя каких-либо подвижных частей и вентиляторов, кроме учительской, где был флопик 3.5. Так что там могла быть удивительная тишина - сейчас такого не найдете, чтобы компьютерный клуб, какой-нибудь, 15 машин работают и стоит гробовая тишина. Сейчас нет такого.
1
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
23.02.2025, 15:56  [ТС]
Уникальной особенностью этой реализации "Солдата Марио" является возможность играть одновременно не только одному или вдвоём, но и втроём. А вообще, код построен так, что легко можно играть и в 4, 5 и так далее. Все эти возможности заложены в код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   //назначаем по умолчанию клавиши для игроков
    //первый игрок
    player[0].Left  = KEY_LEFT;
    player[0].Right = KEY_RIGHT;
    player[0].Up    = KEY_UP;
    player[0].Down  = KEY_DOWN;
    player[0].Fire  = KEY_SPACE;
    player[0].Run   = KEY_LEFTCTRL;
 
    //второй игрок
    player[1].Left  = KEY_Z;
    player[1].Right = KEY_C;
    player[1].Up    = KEY_S;
    player[1].Down  = KEY_X;
    player[1].Fire  = KEY_A;
    player[1].Run   = KEY_LEFTSHIFT;
 
    //третий игрок
    player[2].Left  = KEY_PAD4;
    player[2].Right = KEY_PAD6;
    player[2].Up    = KEY_PAD8;
    player[2].Down  = KEY_PAD5;
    player[2].Fire  = KEY_PAD0;
    player[2].Run   = KEY_PAD7;
То есть, программа игры такога(ва), что где бы не происходили вычисления и проверки координат у всех 2, 3 и больше Марио - всегда в коде идет перебор всех игроков, а их может быть даже и 4 и больше, ограничений тут никаких нет. Клавиатуры, правда может не хватить. Но можно подключить и вторую клавиатуру.

А если ещё приспособить и сеть, интернет - чтобы можно было играть по сети. Все персонажи в случае 2 и 3 показываются вначале вместе. Окно уровня привязано к первому игроку, остальные могут выйти за пределы экрана.

Добавлено через 1 час 28 минут
Я, просто, хотел сказать о том, что нам приносило радость тогда, 30 лет тому назад. Вот что. А радоваться мы могли даже самым простым, на первый взгляд, вещам. Нарисовали в бейсике маленький домик на экране - и уже была радость. Включил учитель игру - радость....и так далее..а потом - перевели машину в защищенный режим работы, в p-mode - это фантастическая радость. Общаетесь с машиной через порты ввода/вывода - радость. Радуетесь Вы - радуется и машина, потому что Вы во время программирования машины тесно с ней связаны: машина высказывает вам благодарность, потому что вы её программируете. Создаёте свой проект, без умопомрачительных по числу букв идентификаторов - огромная радость. Если красивый, самодокументированный код, понятный, получается - радость. Ну что тут говорить, если все тут программисты - вы же наверняка тоже не сразу написали ту или иную игру. Всё равно, начинается всё с малого - как нарисовать точку, линию, окружность, какой цвет у всего этого дела должен быть.

Я, просто ещё, вспоминаю, какая у меня появилась радость, когда папа продал трёхколесный мотоцикл "Урал" и купил мне ZX-Spectrum - делали их наши местные самоделкины в арендуемом подвальном помещении. Казалось бы, если смотреть с сегодняшних дней - ну чему там радоваться - 16 Кб ROM, 48 Кб RAM из неё, сразу же после ПЗУ начиналось ОЗУ экрана, 6192 ячейки памяти, один байт записали в видеопамять машины, а на экране загораются сразу 8 пикселей, удобно. Дело ещё в том, что спектрум был действительно народным компьютером. Уже к моменту распространения этого бытогого (бытогово) компьютера для него уже было написано огромное число игр, но и не только, была программа-ассемблер, бейсик даже. Так что всё было ок.

Я не знаю, но программистами не все, наверное, могут быть. Тут должен быть особый склад ума. Да мне кажется, что эта старинная бытовая машина ZX-Spectrum, у которой в качестве дисплея был советский огромный телевизор с огромным экраном, приносила радости больше, чем когда папа купил мне первый IBM-PC компьютер с микропроцессором i486 и примерно, 32 Мб памяти. Программы, данные для ZX-Spectrum я хранил на магнитных лентах. Вначале был даже катушечный магнитофон, после - обычный кассетный. 48 kb данных по времени, по продолжительности времени равнялись примерно 5 минутам. И всё - игра загружена... и так далее.

Также как и не все могут (должны) быть врачами, огнеборцами, милиционерами и так далее. Кому что Бог даёт - каждому своё. Программист должен обладать огромным терпением, ведь, на поиски "бага", например, может уйти огромное число времени, и, чтобы разобраться, нужно и всю эту внешнюю инфраструктуру изучать и смотреть (а это тысячи программистов работали над Виндоус, а Вы - всего один, единица. Много ли один может сделать?). А что такое представляет из себя внешняя инфраструктура - это библиотеки для С, это API Windows - ну тут чётко работает, однако некоторые баги, когда возникали, с неправильным отображением на экране - это никак не лечится, т.к. к Виндоус прилагался API, проприетарный, чёрный ящик. А MFC с открытыми исходниками были, что очень и очень хорошо, так как вы можете работать в отладчике в режиме трассировки. Видите, как раньше было попроще - компьютер с DOS - дисковая операционная система, прерывание BIOS, чтобы сменить видеорежим из текстового в 320x200. И всё. Потом работает только твой код (кроме звука), что очень и очень хорошо.
1
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
24.02.2025, 12:11  [ТС]
Здравствуйте, COKPOWEHEU!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В общем, не тратьте время на ассеблерные вставки. Тем более если собираетесь писать под Андроид. Там ведь не x86.
Прикол в том, что у меня сейчас на руках китайский планшет с процессором Intel (имя ему - CHUWI HI8), и там две системы - Андроид и Виндовс 8.1. А так, я Вас прекрасно понимаю, потому что этот планшет - это, скорее, исключение из правил. И, скажу Вам - отлично планшет работает, быстро. Правда, ОС Windows уделывает, конечно, Андроид на планшете. На Windows я могу запустить все мои ранее написанные проекты. Что-то, в эмуляторе DOS.

Я, просто, хотел Вам сказать, что у меня раньше был очень большой опыт программирования. (Сейчас я программирование временно забросил) Но, в последнее время, годы, что-то интереса программировать у меня уже нет. А так - я огромное число времени раньше проводил за машиной - писал не только игры, но и программы. Правда, как волк-одиночка, все мои проекты до одного были заброшены, как никому не нужные. Зато хобби, правильно? Вы мне, по-моему, Сами где-то говорили, чтобы я занимался хобби.

Добавлено через 52 минуты
Хотел ещё по интересоваться у всемогущего Аll, сколько времени можно уделять машине в день (при чём, часть времени расходуется на сеть ютуб, часть времени можно будет уделять и программированию машины, потому что я чувствую, что я должен вновь программировать), чтобы не переборщить, для профилактики нервного стресса? Нужно ведь ещё ходить гулять на улицу, а водоём сейчас покрыт льдом, температура низкая. С учётом, что я являюсь инвалидом психического труда, и ни где не работаю, а пенсия у меня не очень большая - в общем тыщ 15 всего.

Добавлено через 1 час 1 минуту
Цитата Сообщение от XLAT Посмотреть сообщение
в целом, нужно правильно выстроить систему приоритетов:
1. Дорога ложка к обеду.
2. Стоимость.
Вот первое - это был 1997 год. Стоимость нулевая, я писал игру как увлечение, как хобби. Я получал ментальное удовольствие от процесса программирования игры.

Нужна ли она сейчас? Но, ведь, если "причесать" игру, её код, и сделать небольшое пособие, разве это не будет хорошим пособием, хорошим делом для ещё только начинающих свой путь программирования?
1
Just Do It!
 Аватар для XLAT
4217 / 2677 / 656
Регистрация: 23.09.2014
Сообщений: 9,142
Записей в блоге: 3
24.02.2025, 14:36
Цитата Сообщение от zorxor Посмотреть сообщение
Я получал ментальное удовольствие
...
0
 Аватар для COKPOWEHEU
4090 / 2688 / 432
Регистрация: 09.09.2017
Сообщений: 11,956
24.02.2025, 14:45
Цитата Сообщение от zorxor Посмотреть сообщение
код построен так, что легко можно играть и в 4, 5 и так далее. Все эти возможности заложены в код:
Судя по тому, что идет присвоение переменным, настройки клавиш могут быть сохранены в какой-то конфиг. Это правильно.
Цитата Сообщение от zorxor Посмотреть сообщение
а их может быть даже и 4 и больше, ограничений тут никаких нет. Клавиатуры, правда может не хватить.
Клавиатуры и на двоих может не хватить. Просто из-за ее устройства, некоторые комбинации клавиш создают фантомные нажатия. Вот идея с интернетом правильная. Если хотите больше 2 человек одновременно, его придется реализовывать.
Цитата Сообщение от zorxor Посмотреть сообщение
Окно уровня привязано к первому игроку, остальные могут выйти за пределы экрана.
А вот это очень плохая идея. Что им там делать, за пределами экрана?!
Цитата Сообщение от zorxor Посмотреть сообщение
сколько времени можно уделять машине в день
Уж лучше машине, чем религии и прочему уничтожению мозга.
Цитата Сообщение от zorxor Посмотреть сообщение
Нужна ли она сейчас? Но, ведь, если "причесать" игру, её код, и сделать небольшое пособие, разве это не будет хорошим пособием, хорошим делом для ещё только начинающих свой путь программирования?
Ваши навыки и подходы изрядно устарели. Соответственно и учебной пользы не принесут.
Если действительно хотите использовать свою игру как учебный материал, ее придется сначала несколько раз переписать с нуля в соответствии с современными подходами и на каком-нибудь "современном" языке. Не знаю, Питон, Раст. Разумеется, вместо ручной графики как минимум OpenGL, а может и готовый игровой движок.
Другое дело - сможете ли вы сделать свое "учебное пособие" лучше тех, что уже написаны.
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
24.02.2025, 14:54  [ТС]
Понимаете, чтобы не быть озабоченным огромным числом инфраструктуры (под инфраструктурой я понимаю тут операционную систему, API, библиотеки).

Основная программа отделена от железа при помощи классов: SCREEN, KEYBOARD, MOUSE.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
несколько раз переписать
Зачем несколько раз переписывать?
1
 Аватар для COKPOWEHEU
4090 / 2688 / 432
Регистрация: 09.09.2017
Сообщений: 11,956
24.02.2025, 15:11
Лучший ответ Сообщение было отмечено zorxor как решение

Решение

Цитата Сообщение от zorxor Посмотреть сообщение
Основная программа отделена от железа при помощи классов: SCREEN, KEYBOARD, MOUSE.
Для этого давным-давно написаны библиотеки SDL, sfml и множество других.
Если говорить об учебной ценности, можете реализовать нужное подмножество SDL-функций, скажем, под DOS, а потом сказать: "вот видите, как все это делается на низком уровне, теперь сравним с готовой библиотекой, и в дальнейшем программировании под Windows (Linux, Android - она много куда портирована) будем пользоваться ей".

Добавлено через 8 секунд
Цитата Сообщение от zorxor Посмотреть сообщение
Основная программа отделена от железа при помощи классов: SCREEN, KEYBOARD, MOUSE.
Для этого давным-давно написаны библиотеки SDL, sfml и множество других.
Если говорить об учебной ценности, можете реализовать нужное подмножество SDL-функций, скажем, под DOS, а потом сказать: "вот видите, как все это делается на низком уровне, теперь сравним с готовой библиотекой, и в дальнейшем программировании под Windows (Linux, Android - она много куда портирована) будем пользоваться ей".
1
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
25.02.2025, 10:51  [ТС]
Здравствуйте!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
сколько времени можно уделять машине в день
Уж лучше машине, чем религии и прочему уничтожению мозга.
Цитата Сообщение от zorxor Посмотреть сообщение
Не должна машина превращаться в идола, который затмевает собой всё остальное, включая домашних, близких и друзей.
Добавлено через 3 минуты
Речь тут идёт о машине.
1
 Аватар для COKPOWEHEU
4090 / 2688 / 432
Регистрация: 09.09.2017
Сообщений: 11,956
25.02.2025, 11:47
И? Превращать вымышленного персонажа из Библии в идола ничуть не лучше. Даже хуже. Машина, по крайней мере, не навязывает античеловеческое поведение. А уж если за машиной не играть, а делать что-то интеллектуальное, то она полезнее и многих оффлайн занятий.
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
25.02.2025, 12:46  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Превращать вымышленного персонажа из Библии в идола ничуть не лучше
Давайте тогда не будем говорить здесь о Боге, потому что здесь наложен на Это строжайший запрет, мне запрещёно об Этом тут говорить и рассуждать.
1
 Аватар для COKPOWEHEU
4090 / 2688 / 432
Регистрация: 09.09.2017
Сообщений: 11,956
25.02.2025, 14:25
Давайте. Это ж только вас постоянно на пропаганду прорывает.
0
-308 / 7 / 0
Регистрация: 06.08.2023
Сообщений: 338
05.03.2025, 15:26
Цитата Сообщение от zorxor Посмотреть сообщение
начав за "здравие", окончили уже за "упокой", переубивали друг друга, разрушили сами себя, превратили свою планету в самый настоящий ад. Увы. Чтобы люди на будущее знали, как не следует поступать и жить, смотря на эту трагическую гибель нашего с вами Земного мира - планеты Земля Солнечной Системы Галактики Млечный Путь.
я правильно понял? ты что то говоришь, якобы в игре будет что то про конец мира? я что хочу сказать : мне не нравится марио, хотя я играл в него, ато все пишуттолько хвалу игре - нет, игра конкретно отстойная, у нее были двойники лучше и портировать лучше их а не её - во первых - игра мужиком - сразу половина населения планеты бросит игру изза гомофобства, я бы хотел играть чем то другим, хоть фигуркой какашки, но не усатым мужиком, во вторых грибы и трубы - лучше конфеты и пища, у всех на работе полно труб
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
05.03.2025, 16:12  [ТС]
Цитата Сообщение от b1anco Посмотреть сообщение
я бы хотел играть чем то другим
Ну можем сделать Вам мальчика или юношу, как Вы хотите.

Добавлено через 6 минут
Вообще, там не только Марио в этой игре. Там больше на козлёнка персонаж похож. А это из игры Magical Kid Wiz - магический ребёнок Wiz. Злая волшебница превратила красивого юношу в козлёнка (в Wiz'a). И когда этот волшебник, козлёнок Wiz, доберется до башни, там наверху принцесса - она поцелует козлёнка Wiz'a, после чего магические чары злых волшебников потеряют свою силу и волшебный, заколдованный в волшебного козлёнка-Wiz'a, ребёнок (юноша) обратно станет похожим на молодого человека, на магического ребёнка Wiz'a
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
05.03.2025, 16:25  [ТС]
Вот такая игра должна стать, в итоге. Современная, с применением современной 3-ёх мерной, компьютерной графики.



Этого волшебника-мальчика злые волшебники превратили в козлёнка Wiz'a, и судьба ему стало - жить в компьютерной, в машинной игре:

Вот та самая игра, на которой я обучился использовать большое число вызовов подпрограмм:

Во время дизассемблирования я нашел такое место в игре, где далее шло просто очень большое число комманд ассемблера Z-80, мнемоники 'call' - это вызов подпрограммы, оканчивающийся мнемоникой ret или iret - в случае возврата из прерывания, инициируемой инструкцией int N или самим железом, внутренностями машины, где N - это число, номер прерывания. Аппаратные прерывания вы можете на время запретить командой cli, а после вновь разрешить, чтобы код исполнялся без единого прерывания железа машины. Бывают даже и такие ситуации, когда прерывания невозможно как-то замаскировать, запретить, cli не работает тут - это системные немаскируемые прерывания, такие, как 13 (0x0D) - нарушение общей защиты машины (синий "экран смерти")

И поэтому, я и здесь сделал подобным образом - огромный текст процедуры разбил на более простые, более маленькие участки кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//============= 'game' это, собственно, сама игра ==================
void SUPERMARIO::Game()
{
    InitForStartGame(0);
    //music(NORMAL_MUSIC);
    while (GAMECYCLE)   //цикл игры
    {
    //I. построение изображения 
    MOVEOBJ::TotalAnimatedObject=0;
    prMonetsChangePhase();
    prPuziri();
    prBuildGamePicture();
    prShowDebugInfo();
    //II. логика игры
    BirdsOtSten();          //птички отталкиваются от стен
    SkeletonCollect();      //собираем скелетов
    prCleverobjRefresh();   //обновляем все у умных объектов
    prMarioDeathOnShipah(); //марио гасится на шипах
    prForMarioProtected();  //чтобы марио был защищенным
    prPrizeCatch(Rick, Prize);//призы не проходят сквозь стенки и марио ловит призы
    prBricksNudgePrize();   //кирпичи могут подталкивать призы
    prBricksRestore();      //восстанавливаем кирпичи
    prTurtleCikAlien();     //черепаха сбивает других чужих
    prMonetsTimeEndTimeLiveAndScoreCreate();//надо создать очки когда монетка пропадает
    prIfGameOver();         //если конец игры 
    prBossSalivaDeathMario();// кегли башки гасят марио и не пролетают через стены
    prBossSendSaliveAndKeepAtMario();//башка пускает "кегли" и находится вблизи от марио
    ArmsKillAlien();        // оружие убивает чужих
    prLiftUpDown();         //меняем направление лифта и обновляем его координаты
    prMarioDeathOnFlower();//марио гасится на зубастых цветках
    prFlowersUpDown();      //поднимаем и опускаем зубастые цветки
    MindobjFunctions(Rick, Cleverobj);//различные функции
    MindobjFunctions(Rick, CleverAlien);//предусмотренные для Mindobj
    prMarioFlyDownCleverobj();  //марио слетает с клевых объектов
    prMarioPositionerOnCleverobject();//позиционируем Mario  на клевый объект
    prMarioRenewXY();//обновляем координаты Mario
    //если ноги марио близко к лифту, марио падает
    prMarioClammyToLift();  //на лифт и его ускорение приравнять к нулю
    prMarioDownsBrickDestroy();//обрушиваем кирпичи под ногами у марио
    prArmsCollisionWithWall();//оружие сталкивается со стенами *
    prRememberOldMarioCoordinates();//запоминаем старые координаты Mario
    prKeyboardProcess();        //обработка НАЖАТИЙ клавиш 
    GameModesTreat();       //обрабатываем ситуацию загрузки и рестарта уровня режимы игры
    if (DoorOpenCounter) DoorOpenCounter--; //чтобы дверь успела открыться
    prScrollBricks();       //двигается фон (спрайты воды и огня)
    prChangeEffect();       //эффект перехода на другой экран
    prShowFPS();            //показать FPS
    prSynhronization();     //синхронизируемся (ждем когда таймер станет равным 1)
    
    ShowLevelNumberTimeCounter++;
 
    if (ShowLevelNumberTimeCounter<100)
    {
        
        Msg("  МИР      ", 34,MSG_NOUPDATE);
        
 
        if (LevelNumber<40)
        {
            scr.putNumb(LevelNumber/4+1,1);
            scr<< '-';
            scr.putNumb(LevelNumber%4+1,1);
        }
        else
        {
            scr.putNumb(LevelNumber);
        }
 
    }
    
...skip...
 
}//конец функции game
0
-308 / 7 / 0
Регистрация: 06.08.2023
Сообщений: 338
05.03.2025, 16:56
Цитата Сообщение от zorxor Посмотреть сообщение
я бы хотел играть чем то другим
Ну можем сделать Вам мальчика или юношу, как Вы хотите.
это не предложение покупки вашей игры, я играть не стану уже точно в это и в почти любую другую - я наигрался в отстой и могу играть только в очень хорошие ито с тоской, от скуки, например в half-life3 - может быть от скуки бы сыграл, но я бы не купил бы это если бы было можно хотя бы гулять, т.е. только зимой при безделье, но не с охотой, это обзор ошибки предыдущих игроделов, хотя игра была возможно пиратской(я вообще играл это где то толи в школе толи на работе у взрослых, может быть в компьютерном клубе), я уже хочу сдать ее обратно, что бы у производителя были не только нераспроданные по той цене игры, а еще сверху того - нескопированные даже бесплатно - т.е. производитель сделал явно отстой, я только не знаю сервиса как это сделать - в те времена вообще такой возмоности даже не было, может вы как раз создадите сервис-антирейтинг, что бы отнять кредитование у производителей-лохов, которые просто протранжили кредиты, вместо вашей игры - сделаете полезное дело - это кроме отнятия у них времени еще и приносит пользу экологии. т.е. обанкротить несколько венчурных производителей современных, путем антирейтинга - сайта где бывшие пользователи приходят и недовольны даже бесплатными копиями игр, где они хотят обвинить их в ИБД(имитация бурной деятельности) и попилах, в порче экологии за зря, в семи смертных грехах и т.д. - вот таким сервисом я бы уже воспользовался, но смотря какова цена, что бы набрать статистику о скачанных пиратках и передать первенство в них не тем играм, а каким то более хорошим, той же half-life, но не марио, отнять очки популярности так сказать

Добавлено через 2 минуты
Цитата Сообщение от zorxor Посмотреть сообщение
Вот такая игра должна стать, в итоге.
такая уже есть hocus-pocus, jaz jackrabbit, еще предшественник - соник(я не играл и не знаю может ли он стрелять, но похоже на то же что на картинке), а так же чип и дейл -там то же вид сбоку
0
 Аватар для zorxor
620 / 111 / 0
Регистрация: 09.02.2020
Сообщений: 2,695
05.03.2025, 17:50  [ТС]
А чем Вы тогда занимаетесь дома, со скуки? Я вот, раньше, любил программировать машину, я писал игры и программы по наитию свыше, своё. Просто Вы тоже можете попробовать заняться программированием машин. Это хобби. Мне вот советовали, как раз, здесь, чтобы я лучше занимался своим хобби, чем рассуждать о гробах и конце светов и всяких других страшилок - апокалипсисов.

Цитата Сообщение от b1anco Посмотреть сообщение
такая уже есть hocus-pocus, jaz jackrabbit, еще предшественник - соник(я не играл и не знаю может ли он стрелять, но похоже на то же что на картинке), а так же чип и дейл -там то же вид сбоку
Простите - вот что должно получиться - современная игра Magical Kid 3d Wiz. Щелкните по экрану, картинка увеличится.


А моя игра, которую я Вам представляю, называется Soldir of Mario - Солдат Мариа.

Вот обучающий ролик (как играть и как рисовать уровни из блоков, также там показан принцип объединения рядом стоящих кубиков):



Вот ссылка на гитхаб, прошу только прощения, там пока руки так и не добрались до исправления проблем с русскоязычными комментариями, там кодировка другая, обещаю исправить!

https://github.com/wiz3267/mario

+ Дело в том, что автором кода этой игры являюсь я (+ один мой друг по институту и работе, он делал последние правки кода для обеспечения визуальных эффектов - как бы линза), и могу ответить на любой Ваш вопрос по поводу игры - а что делает такая-то функция или класс, как работает это или это.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2025, 17:50
Помогаю со студенческими работами здесь

Nintendo отмечает 20-летие игры Super Mario Kart
Японский издатель компьютерных игр и разработчик игровых консолей Nintendo отмечает 20-летие с момента выхода первой из серии игр Super...

Игра в стиле Mario (SFML)
Решил попробовать написать игру в стиле марио. Это моя первая игра на с++ если что. Писал в VS 2013, для написания игры решил...

Поиск пути в массиве для фигуры 2х1(или попытка в ИИ для игры Dr.Mario)
Давно в 1990-х была такая игра на приставку Dendy. Вот задумал написать реализацию на делфи,а чтобы было не скучно,сделать режим...

Mario
Всем привет! Я студент первого курса, и в данный момент выполняю курсовую работу в виде игры &quot;Марио&quot;. Большая часть работы...

Mario c++
Здравствуйте, преподаватель задал написать всеми известную игру &quot;Марио&quot; на чистом с++, без использования каких-либо библиотек. Видел в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru