Ых...
В моем жутком Сферике, как оказалось, 13% кода - комменты...
А вот в редакторе для него - 5,67 ($_$)
А вот вам и несколько упийц моска, персонально от меня, из того же Сферика...
Глобал... Любуемся комментами...
;- - - - - - - - - - - - - - - - - - - - - - - - -
; GLOBALIZATOR
;- - - - - - - - - - - - - - - - - - - - - - - - -
Global PLlife=100 ; хелсы плеера
Global p1 ; временный счётчик для опреда крайних точек позишнов ботов, по совместительству - одна из темп-варов
Global pl ; самый важный обжект во всей гамке - игрок. Точнее это не совсем игрок, а только отражения на шарике - но в любом случае, всё и вся привязано к нему, родимому!
Global G#=-0.3 ; наша гравитационная постоянная
Global jump# ; эт длллля прыжка, точнее - время прыжка
Global xmov ; главная переменная во всём контроллере - отвечает за направление и скорость движения игрока
Global wt ; число тайлов по ширине
Global ht ; и по высоте
; вроде коорды игрока, точнее того тайла, где он находится
Global x ; соответсна по Х...
Global y ; ... и по У!
Global tempent ; Временный обжект (юзается для подбора бонусов)
Global finX ; позиция финиша по Х
Global finY ; позиция финиша по У
Global score ; количество пакман-бонусов, собранных игроком
Global cam ; это наша камера, наши глазявочки
Global mscore=0 ; начальное значение количества шароподобных "рулезов"
Global play ; это непосредсно игрок. Несмотря на то, что привязка идёт не к нему, а к другому обжекту - это основной игрок. Именно он крутится при движении
Global pan ; Угол, на который повернут игрок (его спрайт)
Global BFtimer=0; Таймер для бонуса блэйд форм
; ниже идут переменные для ФПС-ника
Global fps=1 ; непосредсно ФПС
Global fr ; счётчик фреймов
Global frtime ; время обработки фреймов
; а это для поправки - так с имиджами полегше будет...
Global poprX#=-6.52
Global poprY#=4.78
Global scale=57 ; это переменная для ресайза имиджей и их корректного расположения
Global PLstate=0; контрол за состоянием игрока и количеством навешанных на него "рулезов"
Global rez ; переменка для циклов типа While...Wend для отсева по получению резалта.
Global tmp1 ; временные переменные для всякого целочисленного мусора...
Global tmp2
Global temp1# ; Ну, и не совсем целочисленного...
Global musor$ ; Текстовый мусор
Global Ltime=0 ; контролим громовержца...
Global levT=0 ; ... и левитацию.
Global Lhelper ; Хелпер для програмной визуализации шторма молний.
Global GTimer=CreateTimer(60) ; Пытаемся стабильнуть ФПС...
Global SGTimer=CreateTimer(3) ; Пытаемся тормознуть ФПС...
Global actLEV=0 ; Нумер текущего левела.
Global Mlevels=0; Количество левелов с пачке.
Global Mmode=2 ; Режим меню. 0-нет, 1-игровое, 2-главное.
Global actBUT=1 ; Это надо для определения активной кнопки. Также с помощью этой переменной будет легко сделать само "нажатие" кнопок.
Global musT=0 ; Переменная для контроля за тем, закончилась ли композиция.
Global Tnumb=0 ; Переменная для контроля за номером текущего трека.
Global Glife=3 ; Этот вар служит для "убивания" игрока. По сути - кол-во банальных "дендивских" жизней
Вот такое дикое количество комментов... Не переживайте, это только в глобале так (^_^)
Далее...
Совершенно неземной код коллизий (кусочек кода контроля) :
; ----------------------------------------
; Простое устранение лага с ползанием шарика без действий со стороны игрока
If Abs(xmov)<7 Then xmov=0
;- - - - - - - - - - - - - - - - - - - -
;----------PROVERKA PO "X"
;- - - - - - - - - - - - - - - - - - - -
TranslateEntity pl,xmov*0.001,0,0
x=EntityX(pl)+0.5*Sgn(xmov)
y=EntityY(pl)
;proverka na to, svobodna li kletka,kuda hotim peremestitsa
If p(x,y)>-1
TranslateEntity pl,-xmov*0.001,0,0
x=EntityX(pl)
If p(x,y-1)=-1 xmov=-xmov
EndIf
;- - - - - - - - - - - - - - - - - - - -
;----------PROVERKA PO "Y"
;- - - - - - - - - - - - - - - - - - - -
TranslateEntity pl,0,G#+jump#,0
x=EntityX(pl)
y=EntityY(pl)+0.25*Sgn(G#+jump#)
;proverka na to, svobodna li kletka,kuda hotim peremestitsa
If p(x,y)>-1 TranslateEntity pl,0,-(G#+jump#),0
; A eto dabi ne bulo lagov s visotoj:
x=EntityX(pl)
y=EntityY(pl)
If p(x,y-1)>-1 And (EntityY(pl)-y)<0.4 PositionEntity pl,EntityX(pl),y,EntityZ(pl)
; Этот кусочек отвечает за то, что нам будет за столкновение с шипастым тайлом:
If t(x,y+1)=23 And Sgn(G#+jump#)=1 Then PLlife=PLlife-2 jump#=jump#-0.15
; Это мы добавим, дабы игрок никуда не "сползал" и не выпрыгивал с карты:
If EntityX(pl)>x And x=wt PositionEntity pl,x,EntityY(pl),EntityZ(pl)
If EntityY(pl)>y And y=ht PositionEntity pl,EntityX(pl),y,EntityZ(pl)
If EntityX(pl)<x And x=1 PositionEntity pl,x,EntityY(pl),EntityZ(pl)
If EntityY(pl)<y And y=1 PositionEntity pl,EntityX(pl),y,EntityZ(pl)
; -------------------------------------
Ну, и чтобы пощекотать ваши нервы, Header готовящегося фейверка для конкурса:
;======================================-
;====================================-
;==================================-
; Ize'g0re presents... ==-
;==============================-
;|=====+ =====================================-
; |=====+ ===================================-
; |=====+ =================================-
; |=====+ particle st0rm. . . -==========-
; |=====+ =============================-
; * . ; * ' . *
;* ' * . * , * '
;.С Новым Годом!,
; * ' * , * .. ;
; * . ' *. ' * *
Комменты наводят благоговейный ужас на меня... (%_%)