Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 17.12.2007, 00:32   #16
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Синтаксис в блице

вот кусок кода из вартич
			;Так скажем, захват зданий
			If u(t,i,style_)=uns_base
			
				If uf(t,i,protected_)>0
				
					If u(t,i,assaulted_)
										
						h=Rnd(1,3)
						If h=1
							fas=0
							eas=0
							
							maxasss=0
							For ot=0 To maxteam
								curasss=0
								For oi=1 To ttu(ot)
								
									If u(ot,oi,assault_) And u(ot,oi,intoENT_)=0
									
										If EntityDistance(u(ot,oi,ent_),ent)<40
											If dip(ot,t)
												fas=fas+1
											Else
												eas=eas+1
												curasss=curasss+1
												If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
											EndIf
										EndIf
										
									EndIf
									
								Next
								
							Next
						
							If eas<fas-1 Or eas=0
								u(t,i,assaulted_)=0		
							EndIf
						EndIf
	
						pgrvalue=uf(t,i,cur_protect_)*200.0/uf(t,i,protect_)
						spx=uf(t,i,spx_)-100
						spy=uf(t,i,spy_)-60
						
						SetColor tm_color(t,1),tm_color(t,2),tm_color(t,3)	
						SetBlend FI_ALPHABLEND									
						For k=0 To pgrvalue-1
							DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
						Next
						
						SetColor tm_color(u(t,i,assault_team_),1),tm_color(u(t,i,assault_team_),2),tm_color(u(t,i,assault_team_),3)							
						For k=pgrvalue To 199
							DrawImageEx(gfx_assswirl,spx+k,spy,(k+MilliSecs()*0.03) Mod 12)
						Next	
						
						SetColor 255,255,255	
						SetBlend FI_LIGHTBLEND
						DrawImageEx gfx_assbar,spx,spy
						SetBlend FI_ALPHABLEND
							
						
						uf(t,i,cur_protect_)=uf(t,i,cur_protect_)-1
						
						If uf(t,i,cur_protect_)<0
							u(t,i,assaulted_)=0
							uf(t,i,cur_protect_)=1
							TransmitUnit(t,i,u(t,i,assault_team_))							
						EndIf

					Else
					
						uf(t,i,cur_protect_)=uf(t,i,cur_protect_)+5
						If uf(t,i,cur_protect_)>uf(t,i,protect_) Then uf(t,i,cur_protect_)=uf(t,i,protect_)
						h=Rnd(1,30)
						If h=1
							fas=0
							eas=0
							maxasss=0
							For ot=0 To maxteam
								curasss=0
								For oi=1 To ttu(ot)
								
									If u(ot,oi,assault_) And u(t,i,into_)=0
									
										If EntityDistance(u(ot,oi,ent_),ent)<40
											If dip(ot,t)
												fas=fas+1
											Else
												eas=eas+1
												curasss=curasss+1
												If curasss>maxasss Then maxasss=curasss:u(t,i,assault_team_)=ot
											EndIf
										EndIf
										
									EndIf
									
								Next
								
							Next
							
							If eas>fas+2
								u(t,i,assaulted_)=1								
							EndIf
							
						EndIf
						
					EndIf
					
				EndIf
				
			EndIf
			;Так скажем обработка гарнизона, когда юнит сидит внутри
			
			If u(t,i,into_)
				PositionEntity ent,EntityX(u(t,i,intoENT_),1),EntityY(u(t,i,intoENT_),1),EntityZ(u(t,i,intoENT_),1)				
			EndIf
			
			If u(t,i,maxinto_)>0 And t=myteam
				If u(t,i,nav_time_)>1
					packing=0
					idut_into=0
					
					For ot=0 To maxteam
						For oi=1 To ttu(ot)
							If u(ot,oi,intoENT_)=ent Then idut_into=idut_into+1
						Next
					Next
					
					If idut_into<u(t,i,maxinto_)
						For k=1 To ttu(myteam)
							If k<>i And u(myteam,k,sel_) And ((u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider) Then packing=1
						Next
						If packing
							current_cur=cur_pack
							If md2
								sx_#=0
								sz_#=0
								cnt=0
								For k=1 To ttu(myteam)
									If k<>i And u(myteam,k,sel_)
										If (u(t,i,intotype_)=2 And u(myteam,k,style_)<>uns_base) Or u(myteam,k,style_)=uns_solider And cnt<(u(t,i,maxinto_)-u(t,i,uinto_))
											u(myteam,k,intoENT_)=ent
											u(myteam,k,intoI_)=i
											u(myteam,k,intoT_)=t
											u(myteam,k,intoID_)=u(t,i,id_)
											sx_#=sx_#+EntityX(u(myteam,k,ent_),1)
											sz_#=sz_#+EntityZ(u(myteam,k,ent_),1)
											cnt=cnt+1
										EndIf
									EndIf
								Next
								
								If cnt>0
									sx_#=sx_#/Float(cnt)
									sz_#=sz_#/Float(cnt)
									
									MoveUnitTo(t,i,sx_,sz_)
									
									If u(t,i,landing_)=0 Then u(t,i,eng_enabled_)=0	
	
								EndIf	
																				
							EndIf
							
						EndIf
						
					EndIf
					
				EndIf
				
			EndIf
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:39   #17
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Синтаксис в блице

Чёрт, вопрос о необходимом количестве каментов меня заинтересовал. ))

Вот примитивная программка, которая приблизительно подсчитывает количество каментов в коде и выводит ориентировочное процентное соотношение строк кода и комментариев. У меня в основном 10-17% комментариев в коде. Бывают подскоки до 30%, но они почти не влияют на результирующую статистику. Анализируя старые программы (ессно без QBASIC и MS VB ) могу заметить, что с годами статистика не меняется.

А у вас как?

RFile=OpenFile("Имя исходника.bb")

While Eof(RFile)=0
	NLines=NLines+1
	Lne$=ReadLine(RFile)
	For NChar=1 To Len(Lne$)
		Char$=Mid(Lne$,NChar,1)
		If Char$=";" Then
			NComments=NComments+1
			Exit
		EndIf
	Next
Wend

CloseFile(RFile)

Print "NUMBER OF LINES: "+NLines
Print "COMMENTED LINES: "+NComments
Print "____________________________"
Print "COMMENTS PART IN CODE: "+ Float(NComments)/Float(NLines)*100.0 +" %"

Print
Print
Print "Press any key to continue..."

WaitKey()

End
_______________
Added:

вот кусок кода из вартич
А-а, убийца! Ты сломал мой мозг! ))
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:46   #18
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: Синтаксис в блице

А у вас как?
в рпг 4.8%
в шутере 17%
в гонках 8%
Пробовал вставлять документ примерно 10 страниц - 57% - тормозов обнаружено не было да и на скорость компиляции не очень повлияло по крайней мере на глаз
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:47   #19
sSwSs
Оператор ЭВМ
 
Регистрация: 01.12.2007
Сообщений: 39
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Синтаксис в блице

мммм.....у меня 14%)))
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:49   #20
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Синтаксис в блице

У меня всё в функциях.
Выше и ниже функций описываю что она делает
внутри функции над и под процессом описываю что делает.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:52   #21
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Синтаксис в блице

NUMBER OF LINES 14154
COMMENTED LINES 1028
~7.26% комментариев, НО где то, где то 80% из них, ето закоментенный код, дабы не компилился он.
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:54   #22
Bagration
Знающий
 
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: Синтаксис в блице

8 процентов
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 00:59   #23
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: Синтаксис в блице

Кстати, у меня какая-то х..ня в блице, когда писал управление колесницей в рпг своем, там короче есть переменная speed# и rotate#
так вот поворот должен уменьшаться с увеличением скорости, ну как это сделать, как все нормальные люди, делением хотел, тоесть поворот разделить на скорость. Запускаю, хопа... 2д грузиться, а вместо 3д черное пространство, это ладно когда делишь на число, там-то заменить умножением мона, а сдесь, вопсчем пришлось создавать еще одну переменную, кот. уменьшается по мере увеличения скорости, и на нее умножать поворот. Может кто нить сталкивался с таким, или это тока у мяня деление в 3д не работает?
так че на мой вопрос-то кто-нибудь ответит?
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 01:00   #24
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: Синтаксис в блице

NUMBER OF LINES 14154
Похоже, рекорд Тормоза на максимальное количество строк в одном файле побит с большой силой и жестокостью. )
Эх, у меня больше 6850+ строк в один инклюд запихнуть не получалось. Да и то инклюд не честный: склад функций Беглеца. Все функции разбиты по категориям и свёрнуты средствами ГУИ.


или это тока у мяня деление в 3д не работает?
Деление работает везде. Не дели на ноль.
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 01:04   #25
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: Синтаксис в блице

Деление работает везде. Не дели на ноль.
Блин, во я лохонулся. Вроде алгебру в школе учу...
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 01:25   #26
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Синтаксис в блице

Сообщение от Diplomat
Похоже, рекорд Тормоза на максимальное количество строк в одном файле побит с большой силой и жестокостью. )
Какой смысл мутить все в одном?, типа я такой крутой буду писать код на 100к в одном инклде?
Я когда работаю- ну код в 2к-8к я еще перевариваю, а больше , всеравно код уже можно делить и делить!
Хотя тут кому как нравится.
ЗЫ\ Барахолка функций у меня на 3к++
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 01:28   #27
jimon
 
Сообщений: n/a
Re: Синтаксис в блице

ну так не честно в одном я решил по читерить ...
вот программка для blitzmax которая щитает количество
строк во всех инклудах

SuperStrict

Type TComments
	Field Lines%
	Field Comments%
	Field Size%
End Type

Function ReadComments:TComments(File_name$)
	Local file:TStream = ReadFile(File_name)
	Local comments:TComments = New TComments
	Local line$
	ChangeDir(CurrentDir() +"/"+ ExtractDir(File_name))
	comments.Size = file.size()
	While Not Eof(file)
		line$ = Lower(Trim(ReadLine(file)))
		If Instr(line,"'") Then 
			comments.Comments:+1
		Else
			If Instr(line,"include "+Chr(34)) Then
				Local line2$ = Replace(line,"include "+Chr(34),"")
				line2 = Replace(line2,Chr(34),"")
				line2 = Trim(line2)
				Local dir$ = CurrentDir()
				Local com:TComments = ReadComments(line2)
				comments.Lines:+com.Lines
				comments.Comments:+com.Comments
				comments.Size:+com.Size
				ChangeDir(dir)		
			End If
		End If
		comments.Lines:+1
	Wend
	CloseFile(file)
	Return comments
End Function


Function Calculate(File$)

	Local coms:TComments = ReadComments(File)

	DebugLog "---------"
	DebugLog "File : " + File
	DebugLog "Size : " + coms.Size + " bytes"
	DebugLog "Lines : " + coms.Lines
	DebugLog "Comments : " + coms.Comments
	DebugLog "Percents : " + ((Float(coms.Comments)/Float(coms.Lines))*100) + " %" 
	
End Function

Calculate("jAqua.bmx")
Calculate("jEditor.bmx")
в результате :
---------
File : jAqua.bmx
Size : 311112 bytes
Lines : 70028
Comments : 801
Percents : 1.14382815 %
---------
File : jEditor.bmx
Size : 352299 bytes
Lines : 71445
Comments : 811
Percents : 1.13513887 %
там просто редактор юзает код от игры
в принципе я удивлен что настрочил 70 тыс строчек с 800
закоментироваными строчками ... из них половина - убраный код
 
Ответить с цитированием
Старый 17.12.2007, 01:35   #28
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Re: Синтаксис в блице

49% в моих ботах (версия от 4-го декабря )
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 01:40   #29
Bagration
Знающий
 
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: Синтаксис в блице

Сообщение от ABTOMAT
49% в моих ботах (версия от 4-го декабря )
Ого! Комменты для потомков?
(Offline)
 
Ответить с цитированием
Старый 17.12.2007, 02:13   #30
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Re: Синтаксис в блице

Ых...
В моем жутком Сферике, как оказалось, 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. . . -==========-
;  |=====+    =============================-

; * . ; *  ' .  *
;* '  * . * , * '
;.С Новым Годом!,
;  * ' * , * .. ;
; * . '  *. ' * *
Комменты наводят благоговейный ужас на меня... (%_%)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько мышей в Блице Vyacheslav Библиотеки 17 16.02.2012 15:13
Другой синтаксис блица dector Blitz3D 6 25.12.2007 11:19
Мультимедиа в блице AndruXa Blitz3D 3 21.11.2007 02:46
FAR,ЛИК или новый шутер на Блице... LUK Blitz3D 30 07.09.2007 16:41


Часовой пояс GMT +4, время: 08:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com