forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Function не дает имена (http://forum.boolean.name/showthread.php?t=11664)

KingMaks 06.01.2010 00:10

Function не дает имена
 
Есть функция которая создает Уровень:

Код:

Function level_1()
ClearWorld
player = CreateSphere(8)
EntityType player,typeplayer
EntityRadius player,1

camera = CreateCamera(player)
ScaleEntity camera,0.5,0.5,0.5
PositionEntity camera,0,1,0

light = CreateLight()
RotateEntity light,-90,0,0
PositionEntity light,0,10,0
light2 = CreateLight()
RotateEntity light2,45,0,0
PositionEntity light2,0,60,0
light3 = CreateLight()
RotateEntity light3,45,180,0
PositionEntity light3,0,60,0

sky = CreateSphere(64)
ScaleEntity sky,100,100,100
FlipMesh sky
texsky = LoadTexture("Data\levels\level1\texsky.jpg")
EntityTexture sky,texsky

maze_level_1 = LoadMesh("Data\levels\level1\level1.b3d")
EntityType maze_level_1,typesolid
PositionEntity maze_level_1,0,-1,0
levels = "Level_Play"
TurnEntity sky,0,1,0
End Function

Всё создаеться нормально.Уровень грузиться полностью,текстуры тоже.
Но только имён нету.
Тоесть когда я потом, допустим жму кнопку чтобы прокрутить уровень
(level1) мне выдает ошибку, что такого ентити нету, но ведь он загружен
и я хожу по нему, а его номер "0" почему так? и как есто исправить?
если можно то чтобы уровень так и создавался функцией:)

moka 06.01.2010 00:12

Ответ: Function не дает имена
 
Локальные/глобальные переменные. Кури азы программинга.

KingMaks 06.01.2010 00:23

Ответ: Function не дает имена
 
Цитата:

Сообщение от MoKa (Сообщение 132288)
Локальные/глобальные переменные. Кури азы программинга.

Global нельзя использовать в функции

Reks888 06.01.2010 11:19

Ответ: Function не дает имена
 
Кхем-кхем... Начнем базовые занятия по basic'у? Глобальные переменные должны быть заданы в ГЛАВНОЙ программе,а не в функции. Тоесть если тебе нужно чтобы функция принимала/выводила значения тебе нужно написать Global sky,light1,light2,light3... где-то в самом начале кода(вообще не важно где, хоть в главном цикле, только не в функциях).
Как второй вариант есть полезная функция Return, но я объяснить ее не смогу, до этого надо дойти самому. :-)
ЗЫ покури это.

H@NON 06.01.2010 12:21

Ответ: Function не дает имена
 
ClearWorld плохой тон программинга, тебе еще далеко до нормальной архитектуры игры. Нужно всегда знать ссылки на объекты, которые хочешь удалить. Смотри как использовать массивы, типы, переменные тогда код станет опрятней.

ABTOMAT 06.01.2010 14:37

Ответ: Function не дает имена
 
Глобалами - вообще говнокод, но по сути это единственный способ заставить работать всё не переписывая.
З.Ы. Надо снести к чертям и переписать нормально) С типами/массивами и прочими православными вещами.

SBJoker 06.01.2010 14:40

Ответ: Function не дает имена
 
без ООП без глобалов тяжко и почти невозможно.

Reizel 06.01.2010 14:57

Ответ: Function не дает имена
 
Ну до 10 глобалов это нормально :)

Hurrit 06.01.2010 15:09

Ответ: Function не дает имена
 
А больше десяти, это уже говноигра что ли? Боже мой, кого нах*р интересует, сколько глобалов вы использовали, если игра нормально работает. Глобалы сделаны чтобы их использовать, значит надо их использовать. Или вы думаете, что если не использовать глобалы, вы труЪ-программисты? Наверное это очень умно и круто, создавать отдельный тип с одним полем, чем просто задать глобал. Извиняюсь за оффтоп

H@NON 06.01.2010 15:25

Ответ: Function не дает имена
 
Брать нужно по мере требований, и называть переменные понятно, иначе после первой тыщи строк кода разобраться в нем будет весьма тяжко и на этом разработчик может бросить код, посчитав его унылым.

ABTOMAT 06.01.2010 19:05

Ответ: Function не дает имена
 
Цитата:

Сообщение от Hurrit (Сообщение 132323)
А больше десяти, это уже говноигра что ли? Боже мой, кого нах*р интересует, сколько глобалов вы использовали, если игра нормально работает. Глобалы сделаны чтобы их использовать, значит надо их использовать. Или вы думаете, что если не использовать глобалы, вы труЪ-программисты? Наверное это очень умно и круто, создавать отдельный тип с одним полем, чем просто задать глобал. Извиняюсь за оффтоп

Ну уж уровни - это не то, что надо хранить в глобалах.
Есть более важные вещи, которые нужно помещать туда

KingMaks 06.01.2010 22:31

Ответ: Function не дает имена
 
Помоему Hurrit прав.Неважно каким кодом игра написана,
толькобы она была интересной и без багов.

Reizel 06.01.2010 23:18

Ответ: Function не дает имена
 
Ну еще постараться нужно чтоб не тормозило...хотя на моем компе все тормозит :)
ЗЫ сейчас посчитал кол-во глобалов в своем коде...ужаснулся....34 :(

jimon 06.01.2010 23:24

Ответ: Function не дает имена
 
в идеальной игре идеальный код, а набор костылей, чем являются большинство игр и софта вообще, может быть хорошим, чудесным, прекрасным, но не идеальным

KingMaks 06.01.2010 23:34

Ответ: Function не дает имена
 
Цитата:

Сообщение от Павел (Сообщение 132421)
Ну еще постараться нужно чтоб не тормозило...хотя на моем компе все тормозит :)
ЗЫ сейчас посчитал кол-во глобалов в своем коде...ужаснулся....34 :(

Я тут игру пытаюсь зделать, и думаю у меня гдето столько же глобалов будет.
Ето что плохо? почему?

Reizel 07.01.2010 00:14

Ответ: Function не дает имена
 
Ну до этого юзал ClearWorld() , Global'ы приходилось переписывать :(
Щас сделал по другому, работает без багов, только очистку уровня сделать надо :)
А вообще глобал это хорошая вещь :) И GOTO тоже, не знаю почему его так не любят :)

FireOwl 07.01.2010 01:57

Ответ: Function не дает имена
 
Цитата:

Я тут игру пытаюсь зделать, и думаю у меня гдето столько же глобалов будет.
Ето что плохо? почему?
Действительно, почему? Жрет больше памяти?
У меня в программе 6 global image. Чем это может быть плохо?

EvilChaotic 07.01.2010 02:14

Ответ: Function не дает имена
 
Почти любая глобальная ссылка на объект - говнокод.

FireOwl 07.01.2010 02:18

Ответ: Function не дает имена
 
Почему говнокод? В BlitzBasic - почти единственный способ обратиться к объекту из любой точки кода...

В таком случае вот такой код на Си, тоже говнокод:
PHP код:

int global=0;
int main(){
    return 
0;



EvilChaotic 07.01.2010 02:31

Ответ: Function не дает имена
 
Цитата:

Сообщение от FireOwl (Сообщение 132446)
Почему говнокод? В BlitzBasic - почти единственный способ обратиться к объекту из любой точки кода...

Потому, что в нормальном проекте таких объектов быть не должно ) Ресурсы хранят в рес менеджерах, игровые обьекты в обычных типах и так далее.

ABTOMAT 07.01.2010 02:32

Ответ: Function не дает имена
 
В глобалы разве что настройки приложения можно выносить.

FireOwl 07.01.2010 02:35

Ответ: Function не дает имена
 
Я почему-то всегда считал что типы - удобное средство для создания и обработки неопределённого количества объектов. Остальное всегда храню в массивах и переменных.

impersonalis 07.01.2010 03:48

Ответ: Function не дает имена
 
храните всё в глобалах - BlitzHack уже идёт за вами!

Reizel 07.01.2010 13:53

Ответ: Function не дает имена
 
resHack нам в помощь :) Не увидите наших глобалов :)

SBJoker 07.01.2010 15:23

Ответ: Function не дает имена
 
Цитата:

Сообщение от Павел (Сообщение 132487)
resHack нам в помощь :) Не увидите наших глобалов :)

КЭП ты где?

Mr_F_ 07.01.2010 15:56

Ответ: Function не дает имена
 
Код:

Global Mode=-1
Global group,window,statusbar,boxbutton,snaptoggle,viewwindow,toggleSolid,toggleWire,toggleEdged,modelbutton,mviewer,mviewcancel
Global mviewimport,propertieswindow,propXedit,propYedit,propZedit,propRXedit,propRYedit,propRZedit,modeMove,modeRotate,groupModels
Global timetouseimport,mviewplank,previewCam,mviewInsert,objwindow,groupObjects,mviewWithChildren,matedbutton,mateditor,matedclose

Global matNotSimple,matUseLighting,matUseAmb,matUseDiff,matUseLM,matUseRLM,matUseBump,matNoMips,matBright,matContrast,matHue,MatSaturation
Global matCR,matCG,matCB,matUseSpec,matSpec,matSpecPow,matUseEnv,matEnvInt,matAR,matAG,matAB,matUseRim,matRim,matRimPow,matPreDiff
Global matPreNS,matApply,matListWindow,groupMaterials,matListAdd,modeScale,propSXedit,propSYedit,propSZedit,DelayedPent,matMasked
Global matAlpha,mat2Sided,matExport,matImport,matListRename,matListDel,mviewarea,matListArea,objWindowArea,objWindowAreaM,objWindowAreaS
Global mviewRemove,mapbutton,mapwindow,mapclose,mapselectface,mapU,mapV,mapchangetimeout,mapUV,objdelete,matLambert,matHLambert
Global matOrenNayar,matAS,matPhong,matBlinn,matWI,matCT,groupMatDiff,groupMatSpec,anglesnap,renamewindow,rentextbox,renok,rencancel
Global matListRenaming,WorkedIn6Mode,mapPlanarMap,movingplane,mapUM,mapVM,matDepthmap,matParallax,matAlphaSlider,matRefract
Global FinalizingButton,FinalizingWindow,FinRender,FinCancel,Bhdrmap,Bhdrfile,Bhdrint,Bhdrblur,BGI,B1GI,B2GI,BFGRays,Bptpaths,Bptsize
Global BGI1_pm,BGI1_dpm,BGI1_pt,BGI1_fg,BGI1_mc,BGI2_pm,BGI2_dpm,BGI2_pt,BGI2_fg,BGI2_mc,lightbutton,lightwindow,lightcancel,lightlist
Global lightinsert,lightlistadd,lightlistremove,lightint,groupLights,lightR,lightG,lightB,lightShadRad,FinPreview,FinLoadLmaps,Bres
Global ProgressWin,ProgressBar,modeAlign,BGI1_None,BGI2_None,BGI1_Int,BGI2_Int,Bmcrays,Bphotons,BphotonRad,B_ar,B_ag,B_ab,BGIdiffint
Global B_aa,matOverdiff,FinAO,FinUW,Entitybutton,entwindow,entinsert,entcancel,entlist,groupEntities,ppbutton,ppwindow,ppclose,ppssao
Global matPaint,WorkedIn11Mode,PrtButton,PrtWindow,PrtCancel,PrtInsert,groupShapes,prtWall1,ActivePSys.PSystem,ActivePE.PEmitter
Global prtshiftx,prtshifty,prtshiftz,groupEmitters,PrtEArea,PrtSArea,PrtShapeSphere,PrtShapeCube,PrtSphereHotSpot,PrtSphereFalloff
Global PrtCubeBounds,PrtShapeAreaSphere,PrtShapeAreaCube,PrtCycle,PrtCDelay,PrtCDRnd,PrtMass,PrtLife,PrtLifeRnd,PrtRate,PrtTrails
Global PrtSoft,PrtDirX,GraphWindow,GraphBG,GraphClose,PrtDirY,PrtDirZ,PrtSize,PrtRotate,PrtAlpha,PrtRangeX,PrtRangeY,PrtRangeZ,groupPSystems
Global PrtSAdd,PrtModel,PrtMat,mviewHiddenOk,mviewHiddenSP,matListHiddenOk,PrtSRemove,PrtEAdd,PrtERemove,GraphExport,GraphImport
Global PrtImport,PrtExport,PrtAdditive,PrtMax,GraphXEdit,GraphYEdit,onMouse3,SelectedGraphPoint,ppssaopower,ppssaoscale,phywindow
Global phyclose,phygencol,phybutton,phythrow,phyhull,phytrimesh,phynone,DynWindow,DynClose,dyndyn,dynphys,dynmass,dynbutton
Global dynenable,dyngetback,matphysbutton,matphyswindow,matphysenable,matphysfriction,matphyshardtouch,matphyssofttouch,matphysbreakable
Global matphyshardsound,matphyssoftsound,matphysscrapesound,matphysbreaksound,matphysclose,matphysbullsound,matphysscrape,toolsbutton
Global toolswindow,toolsclose,toolsconvmtos,scriptbutton,scriptwindow,scriptnew,scriptsave,scriptcombobox,scriptdelete,scriptcreate
Global scriptcedit,scriptcok,scriptccancel,scriptarea,dynscript,dynchoosescript,dyncsarea,dyncsok,groupScripts,scriptglobal,bspwindow
Global bspbutton,bspclose,bspbuild,bspdebug,bspleafsarea,groupLeafs,bspshowallleafs,bspleafrename,primwindow,primcancel,primbox,primcyl
Global primsegs,propGlobal,propGWindow,propGClose,propGSkybox,propGSkyOn,propGOceanOn,phyboat,dboatWindow,dboatClose,dboatOn,phykeps
Global phymodel,pkeparea,pkepadd,pkepremove,pkepX,pkepY,pkepZ,pkepBuo,pkepLinDamp,groupKeps,pkeprenset,groupKepSets,pkepsetimport
Global phymcx,phymcy,phymcz,pkwindow,pkclose,pkepsetarea,pkepaddset,pkepdelset,pkepsetexport,dboatmaxdrag,dboatpower,groupBoats,dboatadd
Global dboatdel,dboatarea,dboatname,dboatdrivesound,dboatidlesound,dynai,aibutton,aiwindow,ainew,aicreate,aicedit,aicok,aiccancel,aicombobox
Global aisensing,aisensetypeslist,aisenseuse,aisensetypes,aisenseltypes,aisenselprops,aisenseaddtype,aisenseremovetype,aicondif,aicond1
Global aicondop,aicond2,aicondadd,aicondremove,aishedule,aitaskadd,aitaskremove,aitaskfunc,aitasktarget,aitaskparam,aisave,aidelete,aiimport
Global aiexport,dynchooseai,dyncaarea,dyncaok,groupAI,propGTeamsArea,propGTeamsAdd,propGTeamsRemove,teamcreate,teamcok,teamccancel,teamcedit
Global groupTeams,dynteam,dynchooseteam,dynctarea,dynctok,groupTeams2,propGTeamsAI,objrename,objrenamewin,objrenameedit,objrenameok,objrenamecancel
Global dboathealth,weapWindow,weapClose,weapdamage,weaprate,groupWeapons,weapadd,weapdel,weaparea,weapname,weapshootsound,weapreloadsound
Global weapammo,propGWeapButton,weapmodel,pmchoosePSystem,pmcparea,pmcpok,matphysparticles,groupPS,PrtBGColor,PrtBGR,PrtBGG,PrtBGB,filewindow
Global filecombobox,fileinsidelist,filereflist,fileleft,fileright,propGFile,ppssaofar,filemerge,toolscenterpivot,lightdirectional,lightpoint
Global lightspot,lightskylight,FinFastRender,toolsslice,toolsextrude,matanimbutton,matanimwindow,matanimclose,matanimwidth,matanimheight
Global matanimframes,matanimenable,matsphereframe,prtScaleX,prtScaleY,scriptclose,objwindowareae,entgroup,aiclose,matanimdelay,matspheretimeto
Global prtshiftxRND,prtshiftyRND,prtshiftzRND,GraphRNDEdit,prtBright,prtEmit,prtReset,prtTrail,prtUp,prtDown,prtPointalong,prtRed,prtGreen,prtBlue
Global prtNFR,FinImp,FinFRArea,FinFRBlur1,FinFRBlur2,FinPickAmb,LightPickColor,FinFRContrast,matphysdecals,matdecalbutton,matdecalclose
Global matdecalsize,matdecalwindow,matdecalenable,matblendbutton,matblendwindow,matblendclose,matblendalpha,matblendm2x,matblendm4x
Global phyheli,dheliname,dheliclose,groupHelis,dhelimaxdrag,dhelihealth,dheliarea,dheliadd,dhelidel,dheliwindow,matCPick,matAPick,PrtSDupl
Global PrtSRename

Global ShapeOffsetX#, ShapeOffsetY#, ShapeOffsetZ#, ShapeCenterX#, ShapeCenterY#, ShapeCenterZ#

Global CamNX#,CamNY#,CamNZ#

Global matsphere


поэтому я и забил на блиц :-D
без оопа жизни нет

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

Nex 07.01.2010 17:18

Ответ: Function не дает имена
 
О боже. :-)
Кстати может кто нибудь напишет статью, как делать менеджер ресурсов? И как лучше "строить код".. :)

H@NON 07.01.2010 18:21

Ответ: Function не дает имена
 
Вот вам мой менеджер, пользуюсь регулярно.
Код:

;====================================================================
; Project: Resource Manager
; Version: 2.0
; Author: H@non
; Email: [email protected]
; Description:    менеджер ресурсов, следит за хранением их в системе,
;                  дает доступ по управлению, удобен при использовании
;                  локаций в игре.
;====================================================================


;-- тип для ресурсов
Type TResource
    Field path$
    Field ent
    Field tip
End Type
Const RES_MESH=1, RES_AMESH=2, RES_SND=3, RES_TEX=4, RES_SPR=5, RES_SND3D=6

;-- временный тип для удаления лишних ресурсов
;-- (удобен при переходе между локациями с одинаковыми ресурсами)
Type TResDel
    Field r.TResource
End Type


;-- Функция загружает указанный ресурс, либо если ресурс
;-- уже был загружен возвращает ссылку на него.
;Параметры: путь, тип, родитель, текстурные флаги
Function ResLoad(path$, tip, parent=0, texFlag=1)
    Local rf.TResource = Object.TResource(ResFind(path$))
    If rf <> Null Then Return rf\ent

    Local r.TResource = New TResource
    r\tip = tip
    r\path$ = Lower(path)
    Select r\tip
        Case RES_MESH
            r\ent = LoadMesh(path,parent)
            HideEntity r\ent
        Case RES_AMESH
            r\ent = LoadAnimMesh(path,parent)
            HideEntity r\ent
        Case RES_SPR
            r\ent = LoadSprite(path,texFlag,parent)
            HideEntity r\ent
        Case RES_SND
            r\ent = LoadSound(path)
        Case RES_TEX
            r\ent = LoadTexture(path,texFlag)
    End Select
   
    Return r\ent
End Function


;-- Дополнительная функция, работает также как ResLoad
;-- если ресурс повторяется, то заносим его в тип хранения
;Параметры: путь, тип, родитель, текстурные флаги
Function ResLoadPlus(path$, tip, parent=0, texFlag=1)
    Local rf.TResource = Object.TResource(ResFind(path$))
    If rf <> Null Then
        Local rd.TResDel = New TResDel
        rd\r.TResource = rf.TResource
        Return rf\ent
    EndIf
   
    Local r.TResource = New TResource
    r\tip = tip
    r\path$ = Lower(path)
    Select r\tip
        Case RES_MESH
            r\ent = LoadMesh(path,parent)
            HideEntity r\ent
        Case RES_AMESH
            r\ent = LoadAnimMesh(path,parent)
            HideEntity r\ent
        Case RES_SPR
            r\ent = LoadSprite(path,texFlag,parent)
            HideEntity r\ent
        Case RES_SND
            r\ent = LoadSound(path)
        Case RES_TEX
            r\ent = LoadTexture(path,texFlag)
    End Select
   
    Return r\ent
End Function

;-- Функция удаляет лишние ресурсы, которые
;-- не были помещены в тип хранения.
Function ResDeletePlus()
    Local r.TResource, rd.TResDel
    Local result%
    For r.TResource = Each TResource
        For rd.TResDel = Each TResDel
            If r = rd Then
                result = True
                Exit
            EndIf
        Next
        If result = False Then
            Select r\tip
                Case RES_MESH, RES_AMESH, RES_SPR
                    FreeEntity r\ent
                Case RES_SND, RES_SND3D
                    FreeSound r\ent
                Case RES_TEX
                    FreeTexture r\ent
            End Select
            Delete r
        EndIf
    Next
   
    Delete Each TResDel
End Function

;-- Функция ищет ресурс в списке и возвращает хендл на тип
;Параметры: путь_до_ресурса
Function ResFind(path$)
    Local r.TResource
    For r.TResource = Each TResource
        If r\path = path Then
            Return Handle(r)
        EndIf
    Next
    Return 0
End Function

;-- Функция удаляет указанный ресурс из системы
;Параметры: путь_до_ресурса
Function ResDelete(path$)
    Local r.TResource
    For r.TResource = Each TResource
        If path = r\path Then
            Select r\tip
                Case RES_MESH, RES_AMESH, RES_SPR
                    FreeEntity r\ent
                Case RES_SND, RES_SND3D
                    FreeSound r\ent
                Case RES_TEX
                    FreeTexture r\ent
            End Select
            Delete r
            Return True
        EndIf
    Next
    Return False
End Function

;-- Функция удаляет все ресурсы из системы
Function ResDeleteAll()
    Local r.TResource
    For r.TResource = Each TResource
        Select r\tip
            Case RES_MESH, RES_AMESH, RES_SPR
                FreeEntity r\ent
            Case RES_SND, RES_SND3D
                FreeSound r\ent
            Case RES_TEX
                FreeTexture r\ent
        End Select
        Delete r
    Next
   
    Delete Each TResDel
End Function

Использовать так :
Код:

Type Object
    Field ent
End Type

Function AddObject()
    local o.object = New Object
    o\ent = CopyEntity(ResLoad("mesh.b3d", RES_MESH))
End Function


SBJoker 07.01.2010 18:30

Ответ: Function не дает имена
 
ЕМНИП блитз и так негрузит один файл дважды, а просто возвращает хэндл.
Но могу ошибатьсо давно дело было :)

H@NON 07.01.2010 18:39

Ответ: Function не дает имена
 
Все он грузит) ты ошибаешься)

impersonalis 03.03.2010 15:50

Ответ: Function не дает имена
 
Цитата:

Сообщение от Mr_F_ (Сообщение 132505)
Код:

Global Mode=-1
Global group,window,statusbar,boxbutton,snaptoggle,viewwindow,toggleSolid,toggleWire,toggleEdged,modelbutton,mviewer,mviewcancel
Global mviewimport,propertieswindow,propXedit,propYedit,propZedit,propRXedit,propRYedit,propRZedit,modeMove,modeRotate,groupModels
Global timetouseimport,mviewplank,previewCam,mviewInsert,objwindow,groupObjects,mviewWithChildren,matedbutton,mateditor,matedclose

Global matNotSimple,matUseLighting,matUseAmb,matUseDiff,matUseLM,matUseRLM,matUseBump,matNoMips,matBright,matContrast,matHue,MatSaturation
Global matCR,matCG,matCB,matUseSpec,matSpec,matSpecPow,matUseEnv,matEnvInt,matAR,matAG,matAB,matUseRim,matRim,matRimPow,matPreDiff
Global matPreNS,matApply,matListWindow,groupMaterials,matListAdd,modeScale,propSXedit,propSYedit,propSZedit,DelayedPent,matMasked
Global matAlpha,mat2Sided,matExport,matImport,matListRename,matListDel,mviewarea,matListArea,objWindowArea,objWindowAreaM,objWindowAreaS
Global mviewRemove,mapbutton,mapwindow,mapclose,mapselectface,mapU,mapV,mapchangetimeout,mapUV,objdelete,matLambert,matHLambert
Global matOrenNayar,matAS,matPhong,matBlinn,matWI,matCT,groupMatDiff,groupMatSpec,anglesnap,renamewindow,rentextbox,renok,rencancel
Global matListRenaming,WorkedIn6Mode,mapPlanarMap,movingplane,mapUM,mapVM,matDepthmap,matParallax,matAlphaSlider,matRefract
Global FinalizingButton,FinalizingWindow,FinRender,FinCancel,Bhdrmap,Bhdrfile,Bhdrint,Bhdrblur,BGI,B1GI,B2GI,BFGRays,Bptpaths,Bptsize
Global BGI1_pm,BGI1_dpm,BGI1_pt,BGI1_fg,BGI1_mc,BGI2_pm,BGI2_dpm,BGI2_pt,BGI2_fg,BGI2_mc,lightbutton,lightwindow,lightcancel,lightlist
Global lightinsert,lightlistadd,lightlistremove,lightint,groupLights,lightR,lightG,lightB,lightShadRad,FinPreview,FinLoadLmaps,Bres
Global ProgressWin,ProgressBar,modeAlign,BGI1_None,BGI2_None,BGI1_Int,BGI2_Int,Bmcrays,Bphotons,BphotonRad,B_ar,B_ag,B_ab,BGIdiffint
Global B_aa,matOverdiff,FinAO,FinUW,Entitybutton,entwindow,entinsert,entcancel,entlist,groupEntities,ppbutton,ppwindow,ppclose,ppssao
Global matPaint,WorkedIn11Mode,PrtButton,PrtWindow,PrtCancel,PrtInsert,groupShapes,prtWall1,ActivePSys.PSystem,ActivePE.PEmitter
Global prtshiftx,prtshifty,prtshiftz,groupEmitters,PrtEArea,PrtSArea,PrtShapeSphere,PrtShapeCube,PrtSphereHotSpot,PrtSphereFalloff
Global PrtCubeBounds,PrtShapeAreaSphere,PrtShapeAreaCube,PrtCycle,PrtCDelay,PrtCDRnd,PrtMass,PrtLife,PrtLifeRnd,PrtRate,PrtTrails
Global PrtSoft,PrtDirX,GraphWindow,GraphBG,GraphClose,PrtDirY,PrtDirZ,PrtSize,PrtRotate,PrtAlpha,PrtRangeX,PrtRangeY,PrtRangeZ,groupPSystems
Global PrtSAdd,PrtModel,PrtMat,mviewHiddenOk,mviewHiddenSP,matListHiddenOk,PrtSRemove,PrtEAdd,PrtERemove,GraphExport,GraphImport
Global PrtImport,PrtExport,PrtAdditive,PrtMax,GraphXEdit,GraphYEdit,onMouse3,SelectedGraphPoint,ppssaopower,ppssaoscale,phywindow
Global phyclose,phygencol,phybutton,phythrow,phyhull,phytrimesh,phynone,DynWindow,DynClose,dyndyn,dynphys,dynmass,dynbutton
Global dynenable,dyngetback,matphysbutton,matphyswindow,matphysenable,matphysfriction,matphyshardtouch,matphyssofttouch,matphysbreakable
Global matphyshardsound,matphyssoftsound,matphysscrapesound,matphysbreaksound,matphysclose,matphysbullsound,matphysscrape,toolsbutton
Global toolswindow,toolsclose,toolsconvmtos,scriptbutton,scriptwindow,scriptnew,scriptsave,scriptcombobox,scriptdelete,scriptcreate
Global scriptcedit,scriptcok,scriptccancel,scriptarea,dynscript,dynchoosescript,dyncsarea,dyncsok,groupScripts,scriptglobal,bspwindow
Global bspbutton,bspclose,bspbuild,bspdebug,bspleafsarea,groupLeafs,bspshowallleafs,bspleafrename,primwindow,primcancel,primbox,primcyl
Global primsegs,propGlobal,propGWindow,propGClose,propGSkybox,propGSkyOn,propGOceanOn,phyboat,dboatWindow,dboatClose,dboatOn,phykeps
Global phymodel,pkeparea,pkepadd,pkepremove,pkepX,pkepY,pkepZ,pkepBuo,pkepLinDamp,groupKeps,pkeprenset,groupKepSets,pkepsetimport
Global phymcx,phymcy,phymcz,pkwindow,pkclose,pkepsetarea,pkepaddset,pkepdelset,pkepsetexport,dboatmaxdrag,dboatpower,groupBoats,dboatadd
Global dboatdel,dboatarea,dboatname,dboatdrivesound,dboatidlesound,dynai,aibutton,aiwindow,ainew,aicreate,aicedit,aicok,aiccancel,aicombobox
Global aisensing,aisensetypeslist,aisenseuse,aisensetypes,aisenseltypes,aisenselprops,aisenseaddtype,aisenseremovetype,aicondif,aicond1
Global aicondop,aicond2,aicondadd,aicondremove,aishedule,aitaskadd,aitaskremove,aitaskfunc,aitasktarget,aitaskparam,aisave,aidelete,aiimport
Global aiexport,dynchooseai,dyncaarea,dyncaok,groupAI,propGTeamsArea,propGTeamsAdd,propGTeamsRemove,teamcreate,teamcok,teamccancel,teamcedit
Global groupTeams,dynteam,dynchooseteam,dynctarea,dynctok,groupTeams2,propGTeamsAI,objrename,objrenamewin,objrenameedit,objrenameok,objrenamecancel
Global dboathealth,weapWindow,weapClose,weapdamage,weaprate,groupWeapons,weapadd,weapdel,weaparea,weapname,weapshootsound,weapreloadsound
Global weapammo,propGWeapButton,weapmodel,pmchoosePSystem,pmcparea,pmcpok,matphysparticles,groupPS,PrtBGColor,PrtBGR,PrtBGG,PrtBGB,filewindow
Global filecombobox,fileinsidelist,filereflist,fileleft,fileright,propGFile,ppssaofar,filemerge,toolscenterpivot,lightdirectional,lightpoint
Global lightspot,lightskylight,FinFastRender,toolsslice,toolsextrude,matanimbutton,matanimwindow,matanimclose,matanimwidth,matanimheight
Global matanimframes,matanimenable,matsphereframe,prtScaleX,prtScaleY,scriptclose,objwindowareae,entgroup,aiclose,matanimdelay,matspheretimeto
Global prtshiftxRND,prtshiftyRND,prtshiftzRND,GraphRNDEdit,prtBright,prtEmit,prtReset,prtTrail,prtUp,prtDown,prtPointalong,prtRed,prtGreen,prtBlue
Global prtNFR,FinImp,FinFRArea,FinFRBlur1,FinFRBlur2,FinPickAmb,LightPickColor,FinFRContrast,matphysdecals,matdecalbutton,matdecalclose
Global matdecalsize,matdecalwindow,matdecalenable,matblendbutton,matblendwindow,matblendclose,matblendalpha,matblendm2x,matblendm4x
Global phyheli,dheliname,dheliclose,groupHelis,dhelimaxdrag,dhelihealth,dheliarea,dheliadd,dhelidel,dheliwindow,matCPick,matAPick,PrtSDupl
Global PrtSRename

Global ShapeOffsetX#, ShapeOffsetY#, ShapeOffsetZ#, ShapeCenterX#, ShapeCenterY#, ShapeCenterZ#

Global CamNX#,CamNY#,CamNZ#

Global matsphere


поэтому я и забил на блиц :-D
без оопа жизни нет

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

Код:

Global var#=3.14

Print "global var="+var
demo()
WaitKey()
End

Function demo()
        Local var#=2.71
        Print "local var="+var
End Function

и всех делов

SBJoker 03.03.2010 15:52

Ответ: Function не дает имена
 
Стандартное поведение, замещение глобальных переменных локальными.
Ваш КЭП

Phantom 03.03.2010 16:27

Ответ: Function не дает имена
 
А чё, только в PHP global надо указывать внутри функции, чтобы получить доступ к внешней переменной? О_о

Knightmare 03.03.2010 16:31

Ответ: Function не дает имена
 
Цитата:

А чё, только в PHP global надо указывать внутри функции, чтобы получить доступ к внешней переменной? О_о
Судя по синтаксису, к созданию PHP приложили руки героиновые торчки.

.Squid 03.03.2010 17:43

Ответ: Function не дает имена
 
Цитата:

Сообщение от Phantom (Сообщение 140397)
А чё, только в PHP global надо указывать внутри функции, чтобы получить доступ к внешней переменной? О_о

Главное в похапэшное ООП не заглядывай. Меня давеча еле откачали после такого сеанса.

Phantom 04.03.2010 09:16

Ответ: Function не дает имена
 
Цитата:

Судя по синтаксису, к созданию PHP приложили руки героиновые торчки.
Синтаксис-то как раз нормальный там. Бесит разве только конкатенация строк точкой, а не плюсом, и обращение к методам объектов через -> О_о Но в принципе так как с php я начал изучение программирования можно сказать, то потом мне на Java трудно было привыкнуть писать точку вместо -> и плюс вместо точки :-D
Цитата:

Главное в похапэшное ООП не заглядывай. Меня давеча еле откачали после такого сеанса.
Уже почти год как всё пишу на ООП на PHP и ничего, пока живой. :-)

ABTOMAT 04.03.2010 19:06

Ответ: Function не дает имена
 
Цитата:

Сообщение от Phantom (Сообщение 140491)

Синтаксис-то как раз нормальный там. Бесит разве только конкатенация строк точкой, а не плюсом, и обращение к методам объектов через -> О_о Но в принципе так как с php я начал изучение программирования можно сказать, то потом мне на Java трудно было привыкнуть писать точку вместо -> и плюс вместо точки :-D

Уже почти год как всё пишу на ООП на PHP и ничего, пока живой. :-)

Я спокойно пересел с Блица, переключеюсь на php/java/c и обратно. К обращению через стрелку и конкатенации через точку тоже привык почти мгновенно и мне кажется, что ничего плохого в этом нет.
Ви такие считаете, шо я героиновый торчок?

Tadeus 04.03.2010 19:37

Ответ: Function не дает имена
 
Цитата:

Ви такие считаете, шо я героиновый торчок?

Цитата:

Сообщение от ABTOMAT (Сообщение 126876)
Меня пропалили :-D Так и знал что этот косяк слишком узнаваем

no comment Ж)

.Squid 04.03.2010 19:45

Ответ: Function не дает имена
 
Цитата:

Сообщение от ABTOMAT (Сообщение 140556)
Ви такие считаете, шо я героиновый торчок?

Если РНР твоих рук дело, то да.

Phantom 05.03.2010 00:04

Ответ: Function не дает имена
 
А я думал героин обычно внутривенно юзают.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot