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 :(

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


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

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