[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Как делать функции
Как делать функции
DarkHunterДата: Суббота, 07.05.2011, 19:25 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 38
Награды: 1
Репутация: 0
Статус: Offline
Я вот недавно узнал что всё надо заносить в функции(или большую часть).
Я правильно всё делаю?
Code
Graphics3D 800,600,32
SetBuffer BackBuffer()
;Type Array
;Sozdanie igroka
Player=CreateSphere()
;Other
CreatePlayer(0,0,0)
While Not KeyDown(1)
;Other
RenderWorld
Flip
Wend
End
Function CreatePlayer(x#=0,y#=0,z#=0)
  Light=CreateLight(player)
  PositionEntity Player,0,0,0
  Camera=CreateCamera(Player)
  PositionEntity Camera,0,0,0
  AmbientLight 255,255,255
End Function   
Function CreateLvl()
  Terr=LoadTerrain(map\map1.bmp)
  TerrTex=LoadTexture(Textures\grass.png)
  EntityTexture Terr,TerrTex
End Function
 
MarkoДата: Суббота, 07.05.2011, 21:10 | Сообщение # 2
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Quote (DarkHunter)
вот недавно узнал что всё надо заносить в функции(или большую часть).
Я правильно всё делаю?
Code
Graphics3D 800,600,32
SetBuffer BackBuffer()
;Type Array
;Sozdanie igroka
Player=CreateSphere()
;Other
CreatePlayer(0,0,0)
While Not KeyDown(1)
;Other
RenderWorld
Flip
Wend
End
Function CreatePlayer(x#=0,y#=0,z#=0)
  Light=CreateLight(player)
  PositionEntity Player,0,0,0
  Camera=CreateCamera(Player)
  PositionEntity Camera,0,0,0
  AmbientLight 255,255,255
End Function   
Function CreateLvl()
  Terr=LoadTerrain(map\map1.bmp)
  TerrTex=LoadTexture(Textures\grass.png)
  EntityTexture Terr,TerrTex
End Function

Ну можно начать того что твоя программа вообще не работает biggrin
А насчет того что все нужно пихать в функции это бред. функция предназначенный для решения конкретной задачи т.е если ты не можешь что то сделать используя обычный код используй функции. Както так happy


Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Суббота, 07.05.2011, 21:45 | Сообщение # 3
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Функции нужны дабы избежать множественных повторений и путаницы в коде.
Quote (Marko)
Ну можно начать того что твоя программа вообще не работает

Не работате потому что нужно каждую переменную обозначить глобальной
Вот так
Code

Global hero,Terr,TerrTex ;важная часть кода, чтобы функции работали(указываем переменные в функциях)

Graphics3D 800,600,32
SetBuffer BackBuffer()
AmbientLight 255,255,255
Light=CreateLight()
Camera=CreateCamera()

Player=CreatePlayer(hero,0,0,0)

level=CreateLevel("map\map.bmp","Textures\gras s.png")
While Not KeyDown(1)

RenderWorld()
Flip
Wend
End

Function CreatePlayer(x#=0,y#=0,z#=0)
hero=CreateSphere()
PositionEntity hero,x#,y#,z#
Return hero
End Function
            
Function CreateLevel(map$,tex_terrain$)
       Terr=LoadTerrain(map$)
       TerrTex=LoadTexture(tex_terrain$)
       EntityTexture Terr,TerrTex
Return Terr
End Function

Код всё равно не будет работать, потому что нужны текстуры указанные в коде.


MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Суббота, 07.05.2011, 21:50
 
MarkoДата: Суббота, 07.05.2011, 22:10 | Сообщение # 4
ламер
Группа: Пользователи
Сообщений: 29
Награды: 0
Репутация: 0
Статус: Offline
Quote (Marko)
Не работате потому что нужно каждую переменную обозначить глобальной
Вот так
Code

Global hero,Terr,TerrTex ;важная часть кода, чтобы функции работали(указываем переменные в функциях)

Graphics3D 800,600,32
SetBuffer BackBuffer()
AmbientLight 255,255,255
Light=CreateLight()
Camera=CreateCamera()

Player=CreatePlayer(hero,0,0,0)

level=CreateLevel("map\map.bmp","Textures\gras s.png")
While Not KeyDown(1)

RenderWorld()
Flip
Wend
End

Function CreatePlayer(x#=0,y#=0,z#=0)
hero=CreateSphere()
PositionEntity hero,x#,y#,z#
Return hero
End Function

Function CreateLevel(map$,tex_terrain$)
Terr=LoadTerrain(map$)
TerrTex=LoadTexture(tex_terrain$)
EntityTexture Terr,TerrTex
Return Terr
End Function


Quote (MishanayCool)
Код всё равно не будет работать, потому что нужны текстуры указанные в коде.

А как насчет просто элементарных синтаксических ошибок? ( в данном конкретном случае отсутствие "" happy )

Quote (DarkHunter)
Terr=LoadTerrain(map\map1.bmp)
  TerrTex=LoadTexture(Textures\grass.png)

P.S А вообще пост не об этом так что реализация программы была вообще лишней dry


Ошибок не делает тот, кто нечего не делает.
 
MishanayCoolДата: Суббота, 07.05.2011, 22:39 | Сообщение # 5
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Quote (Marko)
А как насчет просто элементарных синтаксических ошибок? ( в данном конкретном случае отсутствие ""

Не стал заострять на этом внимание, так как Debug Blitz'а указал бы на ошибку и программер догадался бы где нужно исправить ошибку.
А вот не работающие функции из-за не объявленных глобальных переменных Debug не поможет это нужно знать наверняка.


MiniDemo3D - Blitz3D
 
DarkHunterДата: Воскресенье, 08.05.2011, 08:28 | Сообщение # 6
ламер
Группа: Пользователи
Сообщений: 38
Награды: 1
Репутация: 0
Статус: Offline
Блин! А в уроке BlitzEtCetera создаём FPS, всё в функции запихали... Значит урок кривой?
 
MishanayCoolДата: Воскресенье, 08.05.2011, 16:04 | Сообщение # 7
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Quote (DarkHunter)
Блин! А в уроке BlitzEtCetera создаём FPS, всё в функции запихали... Значит урок кривой?

Можно и всё запихать, это кому как нравится.
Урока не видел, поэтому кривой он или нет не знаю, но думаю что там всё в порядке.
Всё просто, код работает значит всё в порядке, а насколько грамотно поставлен код это важно только для себя. Главное поставленная цель работает.


MiniDemo3D - Blitz3D
 
DarkHunterДата: Воскресенье, 08.05.2011, 16:08 | Сообщение # 8
ламер
Группа: Пользователи
Сообщений: 38
Награды: 1
Репутация: 0
Статус: Offline
А что будет если создать функции с названием написанным кирилицей?
 
MishanayCoolДата: Воскресенье, 08.05.2011, 16:12 | Сообщение # 9
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Я уже писал что будет вот здесь Форум Blitz3D > 3D мир > Шрифты

MiniDemo3D - Blitz3D

Сообщение отредактировал MishanayCool - Воскресенье, 08.05.2011, 16:12
 
DarkHunterДата: Воскресенье, 08.05.2011, 16:13 | Сообщение # 10
ламер
Группа: Пользователи
Сообщений: 38
Награды: 1
Репутация: 0
Статус: Offline
MishanayCool, У меня можно писать кирилицей, я имею ввиду функция будет функционировать?
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Как делать функции
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: