- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
//============= '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(" УРОВЕНЬ ", 9, MSG_NOUPDATE);
/*if (LevelNumber<40)
{
scr.putNumb(LevelNumber/4+1,1);
scr<< '-';
scr.putNumb(LevelNumber%4+1,1);
}
else
{
scr.putNumb(LevelNumber);
}*/
scr.putNumb(LevelNumber);
}
static int ShowLog=0;
//выводим изображение на экран из DoubleBuffer
if (Keyb[KEY_L] && Keyb[KEY_LEFTCTRL])
{
Keyb^KEY_L;
ShowLog^=1;
}
if (ShowLog)
{
//сжимаем картинку
for(int i=0; i<100; i++)
{
memcpy(scr.DoubleBuffer+i*320, scr.DoubleBuffer+i*2*320,320);
}
scr.rectangle(0,100,320,100,0);
Log.Show();
}
scr.update();
} //конец цикла while
}//конец функции game
Fai 01.09.2011 01:58 # +5
striker 01.09.2011 06:56 # +3
i-- 01.09.2011 10:16 # 0
absolut 01.09.2011 10:59 # +4
roman-kashitsyn 01.09.2011 11:04 # 0
Lure Of Chaos 01.09.2011 11:05 # 0
i-- 01.09.2011 11:06 # 0
prMarioFlyDownCleverobj(); //марио слетает с клевых объектов
roman-kashitsyn 01.09.2011 12:02 # +2
roman-kashitsyn 01.09.2011 11:09 # +5
TarasB 01.09.2011 12:22 # +2
Это код 97 года, этим всё сказано.
Тот, кто его выложил, почему не указал источник?
http://www.gamedev.ru/projects/forum/?id=151708
roman-kashitsyn 01.09.2011 12:40 # +1
Да, и правда не школокод.
Видео реально доставило. Автор - гений. Код - гавно.