Тема: FPS +(
Показать сообщение отдельно
Старый 18.01.2009, 00:17   #16
TEHb08
ПроЭктировщик
 
Регистрация: 25.12.2008
Сообщений: 103
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: 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
(Offline)
 
Ответить с цитированием