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

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

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

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

Игра "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...

211
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.05.2026, 12:31
Студворк — интернет-сервис помощи студентам
претендент на роль марио
1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
19.05.2026, 13:09
Цитата Сообщение от XLAT Посмотреть сообщение
проект с колонами можно продолжить через репроект - переделать на Unity 3d - ты готов?
на этот раз ты будешь директорм + отвечать(скриптить) ui
- переделать можно, но нужно ли? Имею в виду, что я на 100% уверен, что мы справимся с этим и даже получим в разы красивую игру благодаря возможностям юньки. Но зачем нам проект, который не научит нас ничему новому. Мы же всё это умеем.

- сама идея начать новый совместный проект норм. Но предлагаю создать что-то новое.

Предлагаю такую идею:

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

Цитата Сообщение от XLAT Посмотреть сообщение
на этот раз ты будешь директорм
директоров у нас не будет, это будет вайб-разработка без сроков, начальников, тз и прочего.
1
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.05.2026, 13:29
Цитата Сообщение от Royal_X Посмотреть сообщение
Предлагаю такую идею:
казуалка или ААА на 3 года?

(вопрос как бы риторический, но всё же хотца явный ответ услышать))

Добавлено через 3 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
главный игрок - кодер
чувствуется проэлитарность целевых юзверей, что, имхо, не гуд, но и не бадли.

Добавлено через 2 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
Предлагаю такую идею:
я полагаю, что тя нужно тему создать для обсуждения плана?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
19.05.2026, 13:33
Цитата Сообщение от XLAT Посмотреть сообщение
казуалка или ААА на 3 года?
тяп-ляп вайб минималистичная казуалка (жанры - хоррор, логическая, юмор)
игру прям можно назвать "Киберфорум"
Каллиграфер будет главным боссом
0
 Аватар для Mikle Quits
787 / 307 / 17
Регистрация: 21.01.2023
Сообщений: 530
19.05.2026, 13:34
Цитата Сообщение от Royal_X Посмотреть сообщение
выпускается наружу монстр, который убивает игрока
А игрок может порвать сетевой провод к компьютеру и тыкнуть обрывком (под напряжением) в монстра - альтернативная положительная концовка.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
19.05.2026, 13:47
Цитата Сообщение от XLAT Посмотреть сообщение
тему создать для обсуждения плана?
давай, создавай тему в разделе игр

Добавлено через 2 минуты
Цитата Сообщение от Mikle Quits Посмотреть сообщение
порвать сетевой провод к компьютеру и тыкнуть обрывком (под напряжением) в монстра
можно сделать так, что компьютер дымит и взрывается, если код игрока зацикливается

Добавлено через 8 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
игрок должен написать код
нужно определиться с языком. Предлагаю брать embedded питон, который занимает мало места на диске. Он будет лежать в папке с игрой. Задачи будут на алгоритмы, а не по самому языку.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
19.05.2026, 13:48
Цитата Сообщение от Royal_X Посмотреть сообщение
давай, создавай тему в разделе игр
стоп.
было уже сказано:
Цитата Сообщение от XLAT Посмотреть сообщение
на этот раз ты будешь директорм
Цитата Сообщение от Royal_X Посмотреть сообщение
можно сделать так, что компьютер дымит и взрывается, если код игрока зацикливается
реализация блупринтов внутри игры предполагается?
или под игру(внутри игры) нужно изобретать новый ЯП?

поэтому и вопрос был:
Цитата Сообщение от XLAT Посмотреть сообщение
казуалка или ААА на 3 года?
Цитата Сообщение от Royal_X Посмотреть сообщение
Каллиграфер будет главным боссом
доктор Офсет может ревновать), но идея хорошая - не париться с именами...

Цитата Сообщение от Royal_X Посмотреть сообщение
можно сделать так, что компьютер дымит и взрывается, если код игрока зацикливается
дизайнов могёт быть поболя, чем 100500 штукав...
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
19.05.2026, 13:51
XLAT, Шуточная игра "Cyberforum"

повтори там свои вопросы, я на них отвечу
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
20.05.2026, 14:07  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
ближе к делу:
1.
у вас есть 30 гб свободного места?
установите Unity 6.

...
XLAT, здравствуйте! Боюсь, что всё это станет для меня непосильной ношей...
0
 Аватар для COKPOWEHEU
4139 / 2717 / 433
Регистрация: 09.09.2017
Сообщений: 12,050
20.05.2026, 14:39
Там разработка уже началась. Вы можете к ней присоединиться или просто наблюдать.
XLAT решил использовать обычный github, и это удобно не только для него, но и для зрителей: можно отслеживать что и зачем изменилось.
0
Just Do It!
 Аватар для XLAT
4219 / 2680 / 656
Регистрация: 23.09.2014
Сообщений: 9,235
Записей в блоге: 3
20.05.2026, 15:44
Цитата Сообщение от zorxor Посмотреть сообщение
это станет для меня непосильной ношей...
это стандартное "нытье про мотивацию" - им промышляют 9999 человек из 10000.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
20.05.2026, 15:56
XLAT, иди в тему проекта
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
31.05.2026, 10:09  [ТС]
Хотелось бы ещё также отметить для всех участников, что неоспоримым преимуществом этого проекта перед другими, аналогичными - это поддержка любого числа одновременно играющих Солдатов Марио.
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
01.06.2026, 15:25  [ТС]
Это вдогонку к предыдущему моему сообщению - структура классов Марио.

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

Ещё раз кратко напомню:
1) использование enum вместо классического #define
2) использование в струкурах (классах) функций (методов), конструктуров и деструктуров, параметров по умолчанию и перегрузка функций - когда функция имеет одно название, а вариантов реализаций несколько, в зависимости от числа и типа параметров
3) ну что ещё - пространство имен, наверное, когда одна структура (класс) находится в другой
4) перегрузка операций для удобства - например операция взятия элемента массива [] - квадратные скобки, операция += и пр.

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

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

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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
//====================класс SUPERMARIO=======================
class SUPERMARIO
{
public:
 
    //класс BRICK - перечесление кирпичиков
    struct BRICK
    {
        enum {
            MONEY       =   16,     //монетка
            CRYSTAL     =   75,     //кристалл
            BREAK       =   6,      //разбивающийся кирпич
            SMALLBREAK  =   11,     //маленький разбивающийся кирпич
            ANSWER      =   7,      //знак вопроса
            ANSWERMUSHROOM= 3,      //гриб в знаке вопроса
            MANYMONEY   =   18,     //приз 'много монеток'
            BRICKSTAR   =   21,     //в кирпичике звезда
//          MUSHROOMLIVE=   2,      //невидимая жизнь
            ARROW       =   87,     //пуля
            DAGGER      =   88,     //кинжал
            AXE         =   89,     //топорик
            MAP         =   78,     //карта
            DOOR        =   105     //кирпичик-дверь
        };
    };
 
    //чужие - разные объекты
    class ALIEN: public PERSON
    {
    public:
        enum {  
            DEATH=      0x01,   //чужой погиб
            DEATHOFFIRE=0x02    //чужой погиб из-из огня
        };
 
        ALIEN(SPRITE*s) : PERSON(s) {;}
        
        ALIEN() 
        {
        }
        
        ALIEN& operator[](int i)
        {
            return (ALIEN&)PERSON::operator[](i);
        }
        
        void RenewFrame()
        {
            if (!Speedy) ANIM::RenewFrame();
        }
        
        void    RenewXY();
        
        //коды некоторых чужих и безопасных объектов (мостики и лифты)
        enum {
            CHANGELEVEL =19,    //перемещение при котором меняется уровень(следующий кубик - номер уровня)
            PIG         =20,    //свинья
            LIZARD      =21,    //динозаврик
            MASHA       =22,    //ходячий грибок
            TURTLE      =23,    //черепашка
            TOOTHFLOWER =24,    //зубастый цветок
            FIRELINE    =25,    //крутящаяся огненная линия
            HEDGEHOG    =26,    //ежик
            ABORIGINE   =27,    //туземец
            BRIDG_LR1   =29,    //мостик влево-вправо
            LIFT        =30,    //лифт
            BRIDG_UD1   =31,    //мостик вверх-вниз (много )
            BRIDG_UD2   =32,    //мостик вверх-вниз (немного )
            EAGLE_LR1   =33,    //орел влево - вправо
            BRIDG_RL2   =34,    //водяной мостик вправо-влево на 6
            BRIDG_LR2   =35,    //водяной мостик влево-вправо на 6
            BRIDG_UD3   =36,    //мостик вверх-вниз (на 4 с паузой)
            BRIDG_LR_DIAG1=37//мостик (движение сложное)
            BRIDG_UR_LU1=38,    //мостик (движение сложное)
            BRIDG_UL_RU1=39,    //мостик (движение сложное)
            HEAD1       =40,    //первая голова
            COSMONAUT   =41,    //космонавт
            BRIDG_R16_D3_R16=42,//мостик на 2 уровне( начало )
            BRIDG_P_DN9 =43,    //мостик вниз-вверх на 9
            BRIDG_DU_5P =44,    //мостик вниз-вверх на 5 с паузой
            BRIDG_UD_4P =45,    //мостик вверх-вниз на 4 c паузой
            BRIDG_UD_2P =46,    //мостик вверх-вниз на 2 с паузой
            BRIDG_DU_6P =47,    //мостик вниз-вверх на 6 с паузой
            WBRIDG_LR_16=48,    //водный мостик влево-вправо на 16
            SKELETON1   =49,    //скелет, просто за него дают очки
            SKELETON2   =50,    //скелет открывает дверь
            BIRD        =51,    //птичка
            FISH        =52,    //рыбка
            HELIX       =53,    //улитка
            SHARK       =54,    //акула (босс)
            NEXTLEVEL   =55,    //следующий уровень(автомат)
            MUSHROOMLIVE=56,    //невидимая жизнь
            CIRCLEBRIGDE=57
        };
    };
 
    //класс FIRELINE - его объекты вращаются вокруг центра
    class FIRELINE : public ANIM
    {
    public:
        int xc,yc;      //центр
        int Radius;     //радиус
        double Angle;   //угол
 
        void operator+=(FIRELINE & Obj)
        {
            New( &Obj, sizeof(FIRELINE) );
        }
 
        void RenewXY()
        {
            x=int(xc+cos(Angle)*Radius);
            y=yc+sin(Angle)*Radius;
            Angle+=Speed;
            if (Angle>2*3.14) Angle-=2*3.14;
        }
        
        //конструктор по умолчанию
        FIRELINE() 
        {
            xc=0;
            yc=0;
            Radius=0;
            Angle=0;
        }
        
        FIRELINE(SPRITE *s) : ANIM(s) {;}
    };
 
    //сам марио
    class MARIO : public PERSON
    {
    public:
        MARIO(SPRITE*s) : PERSON(s) {;}
        MARIO() {;}
        void RenewXY();
    };
 
    //перемещение
    struct SHUFFLE 
    {
        //возможные значения флага Status
        enum {
        ALWAYS      =   0x00,   //перемещаться можно всегда
        ALLMAP      =   0x01,   //перемещаться можно только если собрана вся карта    
        BOSSLIVE    =   0x02,   //перемещаться можно если жив босс(голова)
        BOSSDEATH   =   0x04,   //перемещаться можно если босс мертвый
        CHGLEVEL    =   0x08,   //идет смена файла
        NEXTLEVEL   =   0x10    //на следующий уровень
        };
 
        int 
            LevelNumber,    //уровень, на который следует переместиться 
                            //(если установлен флаг CHGLEVEL)
            BoxCode,        //код кубика, который нужно искать на уровне
            Status;         //флаги
    };
 
 
    //код опасных кирпичей
    enum { PRICKLES=74 };
    
    enum { DEATHPAUSE=40, PROTECTED_MUSIC=2 };
    
    enum { NUMBER_LEVELBOX=112 };   //число кубиков, доступных редактору уровней
 
    //виды скелетов
    enum { SKELET_DOOR, SKELET_SCORE };
 
    //класс PLAYER - клавиши для одного игрока
    struct PLAYER 
    {
        //коды клавиш для игрока
        BYTE Left,Right,Up,Down,Fire,Run;
    };
 
    //класс BIGSTRING - строка содержащая буквы громадного шрифта 
    struct BIGSTRING
    {
        SPRITE *spr;
        char *a;
        BIGSTRING(SPRITE *s,char *b) : a(b),spr(s) {};
        //прибавляет код n к данным спрайта Sprite
        void Add(int Sprite,int n);
        void Show(int x,int y);
        void Show(int y)
        {
            Show(160-strlen(a)*12, y);
        }
    };
 
 
//*********************перичисления-ЧЛЕНЫ*****************************
    enum mariostate
    {
        MARIO_DEATH     = 0x01, //марио мертвый
        MARIO_CLAMMY    = 0x02, //марио прилип
        MARIO_CANFIRE   = 0x04, //может стрелять
        MARIO_BIG       = 0x08, //марио очень большой(может разбивать) кирпичи
        MARIO_PROTECTED = 0x10, //на марио действует защита
        MARIO_WIZ       = 0x20  //марио выпил волшебную жидкость
    };
 
//================ режимы игры =========================
    enum gamemodes
    {
        GAMEMODE_LOADLEVEL          = 0x01, //загрузить уровень
        GAMEMODE_RESTARTLEVEL       = 0x02, //начать уровень с начала
        GAMEMODE_ALIEN_SCAN         = 0x04, //просканировать уровень
        GAMEMODE_LOADLEVEL_IFDEATH  = 0x08, //загрузить уровень если марио погиб
        GAMEMODE_SHOWEFFECT_IFDEATH = 0x10  //показать эффект (экран синеет)
    };
 
//================= коды меню ==================
    enum idmenu
    {
        MENU_1P,
        MENU_2P,
        MENU_3P,
        MENU_REDEFINEKEYS,
        MENU_LEVELEDITOR,
        MENU_EXIT
    };
 
//*********************ДАННЫЕ-ЧЛЕНЫ*****************************
public:
    enum { ARROW, DAGGER, AXE, SALIVA}; //возможное оружие
 
    enum { SHUFFLE_COUNT=20};
 
    SHUFFLE Shuffle[SHUFFLE_COUNT];
 
    enum { LEVEL_UNDERWATER=0x01};
 
    unsigned
        LevelStatus,    //статус этого уровеня
        SalivaPower,    //мощность слюнь
        ArrowPower,     //мощность стрелы
        DaggerPower,    //мощность ножика
        AxePower,       //мощность топорика
        OldArms,        //старое оружие
        Arms,           //текущее оружие
        ArmsPower,      //текущая сила оружия
        BossLive,       //флаг, говорящий о том, жив ли босс
        CurrentMusic,   //текущая мелодия
        MapCounter,     //число собранных карт
        GameMode,       //режим игры
        GAMECYCLE,      //надо ли продолжать цикл игры
        GAMEEXIT,       //надо ли выйти из игры
        LevelNumber,    //номер текущего уровня
        Lives,          //число жизней
        MoneyCounter,   //число собранных монеток
        Time,           //текущее время
        ProtectedCounter,//счетчик для организации защиты
        PlayerCounter,  //число игроков
        ShowExit,       //показывать надпись EXIT
        OldMarioX,      //старые координаты марио
        OldMarioY,
        Timer1,         //служебные переменные
        Timer2,
        DoorOpenCounter,//используется когда дверь закрывается
        NORMAL_MUSIC,   //номер обычной музыки
        ShowLevelNumberTimeCounter //для отображения номер уровня в самом начале
    ;
 
    unsigned long Score;//текущее число очков
 
    //информация о мелодиях
    char *song[10];
    int   song_start[10];//начальная позиция мелодии
 
    UINT ManymoneyCounter;  //счечик для многих монеток
 
 
    //дескрипторы списков объектов
 
    MARIO   Rick;       //марио
    MINDOBJ Bullet;     //оружие
    PERSON  HeadSaliva; //слюни, которые пускает башка
    ANIM    Toothflower;//цветки
    ANIM    Lift;       //лифты
    ANIM    Door;       //двери
    ANIM    Door1;      //дверь перед Марио
    ANIM    Different;  //разное, никак не обрабатыва емое
    MINDOBJ  Cleverobj; //дескриптор клевых объектов
    MINDOBJ  CleverAlien;//умные чужие
    MINDOBJ  Boss;      //босс (голова)
    ANIM    Skeleton;   //скелеты
    MOVETXT Movetxt;    //текст
    ANIM    Answer;     //выбиваемые знаки вопроса
    ANIM    SCORES;     //очки
    PERSON  Brick;      //кирпичи
    ANIM    Money;      //монетки
    ANIM    Prize;      //призы
    ALIEN   Alien;      //чужие
    FIRELINE FireLine;  //огненные линии
 
    //массив клавиш для игроков (игроков может быть более 3, только клавиш не хватит)
    PLAYER  player[3];
 
    int ChangeEffect;   //требуется выполнить эфффект перехода с одного экрана на другой
                        //из записанного буфера
 
//*********************ФУНКЦИИ-ЧЛЕНЫ*****************************
public:
    int  AllMarioDeath(ANIM&ob);    //если все марио мертвые,возврат TRUE
    void prArmsCollisionWithWall(); //оружие сталкивается со стенами
    void ArmsKillAlien();           //оружие убивает чужих
    void prBuildGamePicture();      //построение картинки
 
    static int  chk_up(MOVEOBJ & ob, int what, int mask=LEVEL::MASK);
    static int  chk_down(MOVEOBJ&, int);
    static int  chk_left(MOVEOBJ&, int,int=1);
    static int  chk_right(MOVEOBJ&, int,int=1);
    static int  chk_all(MOVEOBJ&, int);
    static int  chk_all_transp(MOVEOBJ & ob, int what);
    static int  chk(MOVEOBJ & );
    static int  chk2(MOVEOBJ & );
    void ColorEffect();
    void CreateScore(int score, ANIM & svisor, ANIM & ob);
    void DrawStateline();   //рисуется полоса состояния
    void FunctionSpeed();
    void Game();            //сама игра
    void GameModesTreat();  //обработка режимов игры
    int  get_up(MOVEOBJ & ob);
    void prKeyboardProcess();   //обработка нажатий клавиш
    void LoadMusic();       //загрузка музыки
    void LoadSounds();      //загрузка звуков
    void LoadSprites();     //загрузка спрайтов
    void MarioRenewXY(MARIO&);
    int  MenuMain();        //главное меню
    int  MenuConfiguration();//меню конфигурации
    void MindobjFunctions(PERSON&,MINDOBJ&);    //реализация умных объектов
    void PlayMusic(int n);  //проиграть музыку n
    void prPrizeCatch(ANIM &Rick, ANIM &Prize); //ловим призы
    static int ReadXY(int x,int y);
    static int ReadXY1(int x,int y);
    static int scanlevel_down(MOVEOBJ &ob, int n, int deltax=0);
    void SkeletonCollect(); //собираем скелетов
    SUPERMARIO();
    void DrawMenu();
    void Teleport(int i,PERSON &rk);    //перемещение клавишей вниз
    int MarioKeyUp(int i,PERSON &rk);   //нажатие клавиши "вверх"
    int MarioKeyFire(int i, PERSON &rk);//нажатие клавиши "огонь"
    int InitForStartGame(int param);
    //функции, получившиеся разбивкой огромного цикла игра, имеет префикс pc (process)
    void prPuziri();    //марио пускает пузыри (только под водой)
    void BirdsOtSten(); //птицы отталкиваются от стен
    void prMarioDeathOnShipah(); //марио гасится на кубиках-шипах
    void prMonetsChangePhase();  //меняется фаза манетки (в массиве уровне)
    void prShowDebugInfo();      //показать отладочную информацию
    void prBricksRestore();     //восстановить кирпичи
    void prTurtleCikAlien();    //черепаза сбивает других чужих
    void prRememberOldMarioCoordinates();
    void prForMarioProtected(); //чтобы марио был защищенным
    void prBricksNudgePrize();  //кирпичи могут подталкивать призы
    void prMonetsTimeEndTimeLiveAndScoreCreate();//когда у монетки кончается время жизни надо создать очки
    void prIfGameOver();        //если конец игры 
    void prBossSalivaDeathMario();// кегли башки гасят марио и не пролетают через стены
    void prBossSendSaliveAndKeepAtMario();// башка пускает "кегли" и находится вблизи от марио
    void prLiftUpDown();
    void prMarioDeathOnFlower();
    void prMarioFlyDownCleverobj();
    void prFlowersUpDown();
    void prMarioPositionerOnCleverobject();
    void prMarioClammyToLift();
    void prChangeEffect();
    void prMarioDownsBrickDestroy();
    void prScrollBricks();      //двигается фон (спрайты воды и огня)
    void prShowFPS();           //показать FPS
    void prSynhronization();    //синхронизируемся (ждем когда счетчик-таймер перейдет в 1)
    void prCleverobjRefresh();
    void prMarioRenewXY();
};
 
#endif //
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
04.06.2026, 00:58  [ТС]
XLAT, классный домовёнок !
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
04.06.2026, 01:06  [ТС]
Название: Video_2026-05-18_183902.gif
Просмотров: 124

Размер: 3.72 Мб
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
08.06.2026, 00:13
zorxor, у тебя будут 3d персонажи?
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,734
08.06.2026, 07:20
Что у этого гнома с руками? Его Коля рисовал, что ли?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6315 / 3038 / 1054
Регистрация: 01.06.2021
Сообщений: 11,573
08.06.2026, 08:14
Цитата Сообщение от Usaga Посмотреть сообщение
Его Коля рисовал, что ли?
Подозреваю, что модель сгенерирована китайской нейросетью
0
 Аватар для zorxor
568 / 113 / 0
Регистрация: 09.02.2020
Сообщений: 2,733
Записей в блоге: 1
09.06.2026, 12:13  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
zorxor, у тебя будут 3d персонажи?
Royal, здравствуйте!

Роял, я обнаружил у себя проект MARIO_BIG, это более новое Марио. Марио в той игре не отличается от Марио в стандартном исполнении ничем. Однако в проекте уже нет магических констант, 320 на 200 там больше нет.

Роял, по поводу 3D - я совершенно эту тему не знаю - как работать в 3d, OpenGL или что ещё. К сожалению, увы и ах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2026, 12:13

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru