|
3D-программирование Вопросы, касающиеся программирования 3D мира |
23.03.2012, 10:36
|
#1
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Создать/Разместить объект по условию
Ребят подскажите плз, как создать объект по условию
к примеру есть
Global Speed#=0.2,Score=0,TotalScore=0,Lives=5,Level=1
Hp = LoadMesh(".\media\model\EmergencyCube\HPCube.b3d");
Global BonusHP = CopyEntity(Hp)
FreeEntity Hp
. . .
Некоторое условие после которого увеличивается переменная Level
. . .
далее в главном цикле repeat
когда Level становится > 3 пытаюсь выполнить следующее
if Level > 3 Then
ScaleEntity BonusHP,0.2,0.2,0.2
PositionEntity BonusHP, Rnd(-20,20),0,Rnd(-20,20)
EndIf
теперь о проблеме когда условие срабатывает кубик(объект b3d) начинает рандомно появляется безпрерывно
я понимаю что сие дело в цикле но кто подскажет как это реализовать, потому что, планируется по исчезанию куба, потом его опять вызывать
за ранее спс
|
(Offline)
|
|
23.03.2012, 10:43
|
#2
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Создать/Разместить объект по условию
ScaleEntity BonusHP,0.2,0.2,0.2
PositionEntity BonusHP, Rnd(-20,20),0,Rnd(-20,20)
|
Вызываешь там же где меняется Level , лучше иметь функцию для него.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.03.2012, 12:45
|
#3
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Создать/Разместить объект по условию
я конечно извиняюсь хотел задать вопрос упростив его...
сложность в том что куб создаваться должен при срабатывании нескольких условий
функция то есть только куда ее совать ))
;Liv - количество жизней ;Spd# - текущая скорость движения ;lvl - Текущий уровень Function Bonus(Liv,Spd#,lvl) If(Liv < 3) Then If(Spd# > 2.0) Then If(lvl > 3)Then ScaleEntity BonusHP,0.2,0.2,0.2 PositionEntity BonusHP, Rnd(-20,20),0,Rnd(-20,20) EndIf EndIf EndIf End Function
пс: И еще в С++ есть типы void int float и т д..
когда создаю функцию в этом языке, не нужно указывать ей тип, какое значение она возвращает? или как...? сори за нубство
|
(Offline)
|
|
23.03.2012, 13:22
|
#4
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Создать/Разместить объект по условию
Простой способ: сделать еще одну переменную для контроля установки бонуса.
;Liv - количество жизней
;Spd# - текущая скорость движения
;lvl - Текущий уровень
Global isBonus=false
Function Bonus(Liv,Spd#,lvl)
If(Liv < 3) and isBonus=false Then ;или можно and not isBonus
If(Spd# > 2.0) Then
If(lvl > 3)Then
ScaleEntity BonusHP,0.2,0.2,0.2
PositionEntity BonusHP, Rnd(-20,20),0,Rnd(-20,20)
isBonus=true
EndIf
EndIf
EndIf
End Function
пс: И еще в С++ есть типы void int float и т д..
|
Здесь используются специальные символы в конце имени переменной или функции: int - % , float - # , string - $
Почитай FAQ по B3D, найдешь много полезного.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
23.03.2012, 13:47
|
#5
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Создать/Разместить объект по условию
ну да это понятно! Не понятно где ее вызывать в каком месте цикла
|
(Offline)
|
|
23.03.2012, 14:06
|
#6
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Создать/Разместить объект по условию
Я полагаю вызывать нужно в главном цикле. Только если таких бонусов(или других проверок) будет много, нужно разнести их на несколько проходов цикла. (надеюсь понятно написал)
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.03.2012, 14:10
|
#7
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Создать/Разместить объект по условию
заработало спс!
Поясните последнее пожалуйста.
|
(Offline)
|
|
23.03.2012, 14:26
|
#8
|
ПроЭктировщик
Регистрация: 11.10.2011
Адрес: Мурманск
Сообщений: 154
Написано 74 полезных сообщений (для 218 пользователей)
|
Ответ: Создать/Разместить объект по условию
да
Function FunctionU(A,b)
U=A*b
Return U
End Function
Text 10,10,FunctionU(9,9)
А что, ты с С++ на блитз ушел обычно на оборот =)
Type Generate Field GenerateUPS End Type
Global GenerateUPS% Function Generate(GUPS,GPriod,GRndM) Gperiod=GPriod/GUPS Gtime=MilliSecs()-Gperiod Repeat Gelapsed=MilliSecs()-Gtime Local G.Generate=New Generate G\GenerateUPS=Rnd(0,GRndM) Until Gelapsed End Function
Graphics 1024,768,32,2 SetBuffer BackBuffer() SetFont LoadFont("courier",14,1)
Global GenerateEnter% ;или;Generate(1000,60,8) Repeat
If KeyDown (2)
Generate(1000,60,8) For G.Generate= Each Generate using=G\GenerateUPS usingX=G\GenerateUPS usingY=G\GenerateUPS Next For G.Generate= Each Generate Delete G Next
EndIf
Cls Color 100,100,100 If using>0 Then Texts$="1 using" If using>4 Then Texts$="2 using" If using>2 Then Texts$="3 using" If using>3 Then Texts$="4 using" If using>5 Then Texts$="5 using" If using>6 Then Texts$="6 using" If using>7 Then Texts$="7 using" If using>8 Then Texts$="8 using" Text usingX*50,usingY*50,Texts$
Flip
Forever For v.Generate= Each Generate Delete G Next End
__________________
Острый психоз- это когда вы разговариваете с кошкой.
Острый галлюцинаторный психоз - вы говорите с кошкой, которой не существует.
Паранойя - вы боитесь ляпнуть лишнего при кошке.
Шизофрения - иногда у вас появляется кошка, которая разговаривает.
Неврастения - вы жалуетесь кошке, она молчит, игнорирует вас и это для вас невыносимо!!!
Навязчивый невроз - вы уверены, что кошка не одна и они что-то замышляют!
Последний раз редактировалось Markova, 23.03.2012 в 23:59.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.03.2012, 14:32
|
#9
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Создать/Разместить объект по условию
да я не ушел!
просто выполнил пару примеров на блитце и офигел от простоты
Вот и решил учить и осваивать.
пс работаю в с++ Билдере 2010
ну а так, можете взглянуть, это я для наших ребят уроки преподавал
вот один из них
С++ Урок 4 By SkyMD
к примеру в визуал студии v* чтоб даже окно 3д инициализировать нужно написать намного больше строк кода чем тут. Да и в общем чувствуется что когда создавали двиг этот, то создавался он для людей ,а не как другие программные продукты
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.03.2012, 14:36
|
#10
|
Знающий
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений (для 166 пользователей)
|
Ответ: Создать/Разместить объект по условию
Global numPass=1
;Начало главного цикла
Select numPass
Case 1:
numPass=2 ;
;Здесь вызываем функции
Case 2:
numPass=3 ;
;Здесь вызываем функции
Case 3:
numPass=1 ;
;Здесь вызываем функции
End Select
;Конец главного цикла
Вот так можно делать проверки каждый третий проход цикла.
__________________
AMD Sempron(tm) 1.41Ггц, 1024МБ ОЗУ, GeForce 6200 128МБ, WinXP SP3.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.03.2012, 14:47
|
#11
|
AnyKey`щик
Регистрация: 20.03.2012
Сообщений: 10
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Создать/Разместить объект по условию
|
(Offline)
|
|
24.03.2012, 01:11
|
#12
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: Создать/Разместить объект по условию
к примеру в визуал студии v* чтоб даже окно 3д инициализировать нужно написать намного больше строк кода чем тут. Да и в общем чувствуется что когда создавали двиг этот, то создавался он для людей ,а не как другие программные продукты
|
А еще есть Blitz3D SDK. Как раз для C++. Но из него выдрана сетевая часть. К тому же, куча багов( например, невозможно позиционировать слушателя в пространстве ). Не переходи на него.
__________________
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:21.
|