forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   FPS +( (http://forum.boolean.name/showthread.php?t=7646)

TEHb08 18.01.2009 00:17

Ответ: FPS +(
 
проэкт

Код:

Include "bones.bb"
Include "function.bb"

Global postroika
Global nameb$

Graphics3D 1024,768,16,1
SetBuffer BackBuffer()

camera = CreateCamera()
CameraRange camera,1,10000000
PositionEntity camera,0,3000,0
RotateEntity camera,90,0,0

curpoint=LoadImage("data/dyspley/curpoint.bmp")
cursor=LoadImage("data/dyspley/cursor.bmp")

Include "eartch.bb"



;----------------------------------------------------------------------ÏËÀÍÅÒÀÐÍÛÉ ÑÈÑÒÐÅÉ È ÊÍÎÏÊÈ------------------------------------------------------------------
zemtrey=LoadImage("data/dyspley/nazemle/systrey.bmp")
zemexit=LoadImage("data/dyspley/nazemle/exit.bmp")
zembuild=LoadImage("data\planetobj\house\basa.bmp")

zembuilddom=LoadImage("data\planetobj\house\dom.bmp")
zembuildzavod=LoadImage("data\planetobj\house\zavod.bmp")
zembuildlaboratory=LoadImage("data\planetobj\house\laboratory.bmp")
zembuildangar=LoadImage("data\planetobj\house\angar.bmp")
zembuildmoney=LoadImage("data\planetobj\house\money.bmp")

;çàâîä
zemzavod=LoadImage("data\planetobj\house\zavod\zavod.bmp")

zavodraketa=LoadImage("data\planetobj\house\zavod\raketa.bmp")
zavodlaser=LoadImage("data\planetobj\house\zavod\laser.bmp")
zavodatom=LoadImage("data\planetobj\house\zavod\atomraketa.bmp")

zavodraketavid=LoadImage("data\planetobj\house\zavod\raketavid.bmp")
zavodlaservid=LoadImage("data\planetobj\house\zavod\laservid.bmp")
zavodatomvid=LoadImage("data\planetobj\house\zavod\atomraketavid.bmp")
;----------

;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

;----------------------------------------------------------------------ÐÀÄÀÐ---------------------------------------------------------------------------------------------
radarplus=LoadImage("data/dyspley/plus.bmp")
radarminus=LoadImage("data/dyspley/minus.bmp")

radarramka=LoadImage("data/dyspley/radar.bmp")

viewramka=LoadSprite("data/dyspley/ramka.bmp")
;ScaleSprite viewramka,1024+2600,768+2300

;radarcam = CreateCamera()
;CameraRange radarcam,1,10000000
;CameraViewport radarcam,6,26,239,219

;PositionEntity radarcam,0,10000,0
;RotateEntity radarcam,90,0,0
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------------


;-----------------------------------------------------------------------ñîçäàíèå ïëàíåò---------------------------------------------------------------------------------
suntex=LoadTexture("data\planettex\sun.bmp")
zemlatex=LoadTexture("data\planettex\Earth.JPG")
lunatex=LoadTexture("data\planettex\MOON.JPG")
marstex=LoadTexture("data\planettex\mars.jpg")
sun=addplanet(sun,300,suntex,0,0,0)

zemla=addplanet(zemla,300,zemlatex,0,0,3000)
NameEntity zemla,"zemla"
EntityType zemla,2
EntityPickMode zemla,2

luna=addplanet(luna,50,lunatex,0,0,3500)
mars=addplanet(mars,300,marstex,0,0,-3500)

RotateEntity zemla,25,0,0
RotateEntity mars,90,0,0
;EntityParent zemla,sun
;---------------------------------------------------------------------------------------------------------------------------------------------------------------------------




light = CreateLight()
stroim = 0
 postroika=0

nazemle = 0
fntArial=LoadFont("Arial",15)


naselenie=10

raket=0

;-------------èññëåäîâàíèÿ--------------------------
labraketa=0
lablaser=0
labatom=0
;------------------------------------------------

;-------------Ðåñóðñû--------------------------
gold=1000000
wood=0
rock=0
neft=0
atomn=10000
;------------------------------------------------

;---------------------------------------------------------------ÃËÀÂÍÛÉ ÖÈÊË----------------------------------------------------------------
Repeat
;nameb$=""

EntityParent zemla,sun
EntityParent luna,zemla

EntityParent mars,sun

TurnEntity zemla,0,-0.5,0
TurnEntity sun,0,+0.1,0

If nazemle = 0
If MouseX() >= 1000 Then MoveEntity camera,+50,0,0
If MouseX() <= 4 Then MoveEntity camera,-50,0,0
If MouseY() >= 730 Then MoveEntity camera,0,-50,0
If MouseY() <= 10 Then MoveEntity camera,0,+50,0
EndIf

If nazemle = 1
If MouseX() >= 1000 Then MoveEntity camera,+5,0,0
If MouseX() <= 4 Then MoveEntity camera,-5,0,0
If MouseY() >= 730 Then MoveEntity camera,0,-5,-5
If MouseY() <= 10 Then MoveEntity camera,0,+5,+5
EndIf


;If MouseHit(1) = 1 Then  PositionEntity viewramka,EntityX(camera),EntityY(camera)-3000,EntityZ(camera)


PositionEntity viewramka,EntityX(camera),EntityY(camera)-3000,EntityZ(camera)

;----------------------------------------------------Âûáèðàåì îáúåêò------------------------------------------------------------------------------
If MouseHit(1) And CameraPick(camera,MouseX(),MouseY()) <>0 And nazemle = 0 Then
who=CameraPick(camera,MouseX(),MouseY())
videlname$=EntityName(who)
If videlname$ = "zemla" And nazemle = 0
nazemle = 1
PositionEntity camera,450,100300,250
RotateEntity camera,45,45,0
;CameraViewport radarcam,0,0,1024,768
videlname$=""
EndIf

EndIf

If MouseDown(1) And CameraPick(camera,MouseX(),MouseY()) <>0 And nazemle = 1 And  postroika=0 Then
who=CameraPick(camera,MouseX(),MouseY())
videlname$=EntityName(who)



If videlname$="basa"
objname$="Áàçà"
videlstat=1
EndIf


For a.dom=Each dom
If who=a\dom_id

 If a\dom_seartch$ = "zavod"
 videlname$="zavod"

 EndIf

 If a\dom_seartch$ = "laboratory"
 videlname$="labora"

 EndIf
 
EndIf
Next


EndIf
;-------------------------------------------------------------------------------------------------------------------------------------------------------


;-------------------------------------------------------------Òåõíîëîãèè---------------------------------------------------------------------------

;-----------------------------------------------------------------------------------------------------------------------------------------------------


;-------------------------------------------------------------Òåõíèêà---------------------------------------------------------------------------

;-----------------------------------------------------------------------------------------------------------------------------------------------------

;-------------------------------------------------------------îðóæèå---------------------------------------------------------------------------

;-----------------------------------------------------------------------------------------------------------------------------------------------------


;------------------------------------------------------------Ñòðîèì îáúåêòû------------------------------------------------------------------------

If builddom=1;äîì----------------------------------
build(postroika,camera)

rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf

If MouseDown(1) = 1
 If EntityPick (postroika,200) = 0
 gold=gold-5000
 naselenie=naselenie+15
 builddom=0
 EntityPickMode terrain,0
 EntityAlpha postroika,1
 postroika=0
 Else
 nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
 EndIf
EndIf

If MouseDown(2)
videlname$=""
builddom=0
EntityPickMode terrain,0

For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0

EndIf

EndIf;---------------------------------------------------------


If buildzavod=1;çàâîä---------------------------------
build(postroika,camera)

rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf

If MouseDown(1) = 1
 If EntityPick (postroika,200) = 0
 gold=gold-10000
 buildzavod=0
 EntityPickMode terrain,0
 EntityAlpha postroika,1
 postroika=0
 okzavod=1
 Else
 nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
 EndIf
EndIf

If MouseDown(2)
videlname$=""
buildzavod=0
EntityPickMode terrain,0

For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0

EndIf

EndIf;---------------------------------------------------------

If buildlab = 1;ëàáàðàòîðèÿ---------------------------------
build(postroika,camera)

rasto=EntityPick(postroika,100)
If rasto > 0
dis=EntityDistance(postroika,rasto)
EndIf

If MouseDown(1) = 1
 If EntityPick (postroika,200) = 0
 gold=gold-15000
 atomn=atomn-500
 buildlab=0
 EntityPickMode terrain,0
 EntityAlpha postroika,1
 postroika=0
 oklab=1
 Else
 nameb$="ñëèøêîì áëèçêî ê îáúåêòàì"
 EndIf
EndIf

If MouseDown(2)
videlname$=""
buildlab=0
EntityPickMode terrain,0

For a.dom=Each dom
If postroika=a\dom_id Then Exit
Next
FreeEntity postroika
Delete a
postroyka=0

EndIf

EndIf;---------------------------------------------------------

;-------------------------------------------------------------------------------------------------------------------------------------------------------


RenderWorld
;--------------------------------------------------------------------ÐÅÍÄÅÐ----------------------------------------------------------------------------

DrawImage curpoint,MouseX(),MouseY()

Text 500,20, "Âûáðàíà: "+videlname$

;----------------------------------------ÑÈÑÒÅÌÍÛÉ ÒÐÅÉ------------------------------------------------------------------------------------------------
If nazemle = 1

DrawImage zemtrey,0,768-200

If button(curpoint,zemexit,0,568,16,11,"Âûõîä â êîñìîñ") = 1
nazemle = 0
PositionEntity camera,0,3000,0
RotateEntity camera,90,0,0
EndIf


If videlname$="basa"

DrawImage zembuild,229,568+68

If MouseDown(2)
videlname$=""
EndIf

If button(curpoint,zembuilddom,229,636,0,0,"Æèëîé äîì - 5000 çîëîòà") = 1
 If gold >=5000
 EntityPickMode terrain,2
 builddom=1
 a.dom = New dom
 a\dom_id = LoadMesh("data\planetobj\house\dom\STORY_M.3DS")
 postroika=a\dom_id
 a\dom_name = "Äîì"
 a\dom_helsa = "100"
 a\dom_seartch = "dom"
 PositionEntity a\dom_id,300,100020,300
 EntityPickMode a\dom_id,2
 ScaleEntity a\dom_id,0.01,0.01,0.01
 EntityAlpha a\dom_id,0.4
 stroim = 1
 Else
 nameb$="Íå õâàòàåò ðåñóðñîâ"
 EndIf
EndIf

If button(curpoint,zembuildzavod,229,636,62,0,"Çàâîä - 10000 çîëîòà") = 1

If gold >=10000
 buildzavod=1
EntityPickMode terrain,2
 a.dom = New dom
 a\dom_id = LoadMesh("data\planetobj\house\zavod\SAWMILL_.3DS")
 postroika=a\dom_id
 a\dom_name = "Çàâîä"
 a\dom_helsa = "100"
 a\dom_seartch$ = "zavod"
 PositionEntity a\dom_id,300,100020,300
 EntityPickMode a\dom_id,2
 ScaleEntity a\dom_id,0.01,0.01,0.01
 EntityAlpha a\dom_id,0.4
 stroim = 1
 Else
 nameb$="Íå õâàòàåò ðåñóðñîâ"
 EndIf

EndIf

If button(curpoint,zembuildlaboratory,229,636,125,0,"Ëàáîðàòîðèÿ - 15000 çîëîòà, 500 àòîìîâ") = 1

If gold >=15000 And atomn >= 500
 buildlab=1
EntityPickMode terrain,2
 a.dom = New dom
 a\dom_id = LoadMesh("data\planetobj\house\labaratory\KEHL_L.3DS")
 postroika=a\dom_id
 a\dom_name = "Ëàáîðàòîðèÿ"
 a\dom_helsa = "100"
 a\dom_seartch$ = "laboratory"
 PositionEntity a\dom_id,300,100040,300
 EntityPickMode a\dom_id,2
 ScaleEntity a\dom_id,0.05,0.05,0.05
 EntityAlpha a\dom_id,0.4
 stroim = 1
 Else
 nameb$="Íå õâàòàåò ðåñóðñîâ"
 EndIf

EndIf

If button(curpoint,zembuildangar,229,636,0,55,"Àíãàð - 12000 çîëîòà") = 1

EndIf

If button(curpoint,zembuildmoney,229,636,62,55,"Áàíê - 7000 çîëîòà") = 1

EndIf

EndIf;Ðèñóåò ïàíåëü

;----------------------ðèñóåì ïàíåëü çàâîäà------------------
If videlname$="zavod"
DrawImage zemzavod,229,568+68

If MouseDown(2)
videlname$=""
EndIf

 If labraketa=1
 DrawImage zavodraketa,229+4,636+7
  If button(curpoint,zavodraketavid,229,636,4,7,"Ðàêåòà - 2500 çîëîòà è 230  íåôòè ") = 1

  EndIf
 EndIf

 If lablaser=1
 DrawImage zavodlaser,229+62+4,636+7
  If button(curpoint,zavodlaservid,229,636,62+4,7,"Ëàçåðíûé çàðÿä - 5000 çîëîòà è 300 àòîìîâ") = 1

  EndIf
 EndIf

 If labatom=1
 DrawImage zavodatom,229+125+4,636+7
  If button(curpoint,zavodatomvid,229,636,125+4,7,"Àòîìíàÿ ðàêåòà - 18000 çîëîòà, 800 íåôòè è 1500 àòîìîâ") = 1

  EndIf
 EndIf

EndIf


;-------------------------------------------------------------------

;----------------------ðèñóåì ïàíåëü ëàáîðàòîðèè------------------
If videlname$="labora"
DrawImage zemzavod,229,568+68

If MouseDown(2)
videlname$=""
EndIf

 If labraketa=0
 DrawImage zavodraketa,229+4,636+7
  If button(curpoint,zavodraketavid,229,636,4,7,"Ðàêåòà - 5000 çîëîòà è 25 íàñåëåíèÿ") = 1
  If gold >=5000 And naselenie >=25
  gold=gold-5000
  labraketa=1
  EndIf
  EndIf
 EndIf

 If lablaser=0
 DrawImage zavodlaser,229+62+4,636+7
  If button(curpoint,zavodlaservid,229,636,62+4,7,"Ëàçåðíûé çàðÿä - 8000 çîëîòà 57 íàñåëåíèÿ") = 1
  If gold >=8000 And naselenie >=57
  lablaser=1
  EndIf
  EndIf
 EndIf

 If labatom=0
 DrawImage zavodatom,229+125+4,636+7
  If button(curpoint,zavodatomvid,229,636,125+4,7,"Àòîìíàÿ ðàêåòà - 28000 çîëîòà 160 íàññåëåíèÿ") = 1
  If gold >=28000 And naselenie >=160
  labatom=1
  EndIf
  EndIf
 EndIf

EndIf


;-------------------------------------------------------------------



Text 959,568+181,gold
Text 879,568+181,wood
Text 799,568+181,rock
Text 719,568+181,atomn
Text 639,568+181,atomnneft

Text 35,568+52,naselenie
Text 151,568+52,raket

Text  228,768-200+181,nameb$

EndIf
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------Çóì ðàäàðà-----------------------------------------------------------------------------------
If nazemle = 0

;For y = 1 To 500
;Plot Rnd(6,243),Rnd(26,243)
;Next

DrawImage radarramka,0,0
If button(curpoint,radarplus,0,0,227,6,"") = 1 And EntityY(camera) > 4000
MoveEntity camera,0,0,+50
EndIf

If button(curpoint,radarminus,0,0,207,6,"") = 1 And EntityY(camera) < 50000
MoveEntity camera,0,0,-50
EndIf

EndIf
;--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Text 300,300,fps

        frame = frame + 1
        If MilliSecs() >= tstart Then
                fps = frame
                frame = 0
                tstart = MilliSecs() + 1000
        EndIf
       
DrawImage cursor,MouseX(),MouseY()

Flip
Until KeyHit(1)
End


tormoz 18.01.2009 00:37

Ответ: FPS +(
 
километр кода без ресурсов...
И что нам с ним делать ?
Разводить кофейную гущу и гадать ?

запомни несколько правил
1 количество полигонов в кадре. Лучше если оно будет не более 100 000. Лучше меньше

2 количество объектов в кадре. Не более 500-700

3 количество разных материалов в сцене. не более 50

И будет тебе высокий фпс и мир во всем мире

HolyDel 18.01.2009 00:48

Ответ: FPS +(
 
4. количество камер - 1 штука.

ты ее случайно в цикле не создаешь?

ABTOMAT 18.01.2009 00:49

Ответ: FPS +(
 
Цитата:

щя скину свой проэкт
Ой, если там километровые исходники, то вряд ли кто-то станет копаться (уж точно не я)
Но замеры на свуоей машине скажу :)

TEHb08 18.01.2009 00:51

Ответ: FPS +(
 
Цитата:

Сообщение от HolyDel (Сообщение 95048)
4. количество камер - 1 штука.

ты ее случайно в цикле не создаешь?

не она у меня стояла на радаре но я убрал ибо тормозит игру

TEHb08 18.01.2009 00:52

Ответ: FPS +(
 
Цитата:

Сообщение от ABTOMAT (Сообщение 95049)
Ой, если там километровые исходники, то вряд ли кто-то станет копаться (уж точно не я)
Но замеры на свуоей машине скажу :)

да там киллометровые исходники я про то и говорю что это бесполезно +)

SBJoker 18.01.2009 01:22

Ответ: FPS +(
 
А ещё попробуй закаментить все строчки начинающиеся с "Text".

Эта команда иногда феерично кушает фпс почём зря.

TEHb08 19.01.2009 00:07

Ответ: FPS +(
 
кажется с ФПС разобрался
это из-за домов было и пару цыклов переправил

еще вопросик есть у кого нить объекты домов заводов ?

NitE 19.01.2009 02:09

Re: FPS +(
 
воспользуйся какойнить простой прогой для оптимизаций моделей, она эти домики поправит )))

TEHb08 19.01.2009 19:31

Ответ: Re: FPS +(
 
Цитата:

Сообщение от NitE (Сообщение 95142)
воспользуйся какойнить простой прогой для оптимизаций моделей, она эти домики поправит )))

щя попробуем )

ABTOMAT 22.01.2009 02:11

Ответ: FPS +(
 
В 3Д Максе есть модификатор Optimize. Правда, работает как-то кривовато... Но видимо я просто плохо рылся в настройках.

Taugeshtu 22.01.2009 02:46

Ответ: FPS +(
 
Не, он действительно криво работает. Все дело в том, что машынные оптимизаторы никогда не дадут такой чистоты и правильности сетки, как правленная руками сетка.

impersonalis 22.01.2009 02:53

Ответ: FPS +(
 
Тьюринг был бы рад

Dakar 19.09.2009 22:49

Ответ: FPS +(
 
Есть плюгин Polygon Cruncher завётся так он поможет! оптимизить как надо плюс валом настроек, откуда скачать не помню, гуглянка поможет, да и на форуме помойму кто то выкладывал.

is.SarCasm 19.09.2009 22:51

Ответ: FPS +(
 
Люди вот у меня тож проблема с завышение фпс о_О
Цитата:

1 количество полигонов в кадре. Лучше если оно будет не более 100 000. Лучше меньше
Полигонов в кадре не более 5 000 фпс 20....

+ Меню в с 5 кнопками фпс 14.....


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

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