|
3D-программирование Вопросы, касающиеся программирования 3D мира |
08.10.2005, 17:29
|
#1
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
[color=blue]Пытаюсь создать полноценную стрелялку!Помогите
|
(Offline)
|
|
08.10.2005, 23:20
|
#3
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
ААА не пойдёт :o мне нужен хороший ИИ, типа чтоб припятствия обходил )
Короче с чуваками делем игру, так вот и возникают вопросы
|
(Offline)
|
|
09.10.2005, 20:52
|
#5
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
|
(Offline)
|
|
09.10.2005, 21:06
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
1. Создай тип(стисок или Type) Weapon, полями(Field) которого будут его (оружия) свойства (модель, мощность, дальность и т.д.;
2. Создай массив этого типа, размерность которого будет означать кол-во оружия;
3. Проинициализируй весь массмв (оператор New) и загрузи/установи значения его полей;
4. Создай переменную, которая будет содержать информацию - какое оружие выбрано;
5. Создай функцию смены оружия.
Вот и все.
|
(Offline)
|
|
14.10.2005, 17:49
|
#7
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Originally posted by PAX@Oct 9 2005, 07:06 PM
1. Создай тип(стисок или Type) Weapon, полями(Field) которого будут его (оружия) свойства (модель, мощность, дальность и т.д.;
2. Создай массив этого типа, размерность которого будет означать кол-во оружия;
3. Проинициализируй весь массмв (оператор New) и загрузи/установи значения его полей;
4. Создай переменную, которая будет содержать информацию - какое оружие выбрано;
5. Создай функцию смены оружия.
Вот и все.
|
Не понятно. А может исходник выложишь?
|
(Offline)
|
|
14.10.2005, 18:27
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Вот что-то подобное (пишу прямо на форуме):
Type Weapon
* Field Model%
* Field Power%
* Field Name$
*;...
End Type
Dim Weapons.Weapon(CountWeapons%)
For I=1 to CountWeapons
*Weapons.Weapon(I)= New Weapons
Next
;Здесь ты должен загрузить оружие, скрыть модели, задать параметры оружия и т.д.
;...
;Переменная содержащая текущее оружие
Global CurrentWeapon.Weapon=New Weapon
;Функция смены оружия
Function ChangeWeapon(WeaponIndex%)
* If CurrentWeapon\Model% then FreeEntity(CurrentWeapon\Model%):CurrentWeapon\Model%=0
* CurrentWeapon\Model%=CopyEntity(Weapons(WeaponIndex%)\Model%)
* CurrentWeapon\Power%=Weapons(WeaponIndex%)\Power%
* CurrentWeapon\Name$=Weapons(WeaponIndex%)\Name$
*;...
End Function
Для получения параметров выбранного оружия используй: CurrentWeapon\Parameter
|
(Offline)
|
|
14.10.2005, 23:57
|
#9
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Хм... Ну да более понятно стало...
|
(Offline)
|
|
15.10.2005, 08:45
|
#10
|
|
to pax:
конешно создавать dim aa.bb хорошо
но помойму лутче создать обычный dim aa
и заносить туда handle обектов типа
или вообще несоздавать никаких там dimов, а работать прямо с типами
помойму так лутче выглядить и меньше памяти есть
|
|
|
15.10.2005, 10:13
|
#11
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
А ну ка поподробней
|
(Offline)
|
|
15.10.2005, 14:55
|
#12
|
|
пишу опять прямо на форуме )
type weapon
...
end type
dim we(10)
for create=0 to 9
w.weapon=new weapon
we(create)=handle(w)
next
global current_weapon
function changeweapon(weapon)
*current_weapon=we(weapon)
end function
function update_weapons()
w.weapon=object.weapon(current_weapon)
.....
работа с оружием здесь
.....
end function
вот так
идея такова чтобы получать в update_weapons прямо w а не перебирать все обекты
можно конешно и так :
type weapon
field id
...
end type
for cr=0 to 10
w.weapon=new weapon
w\id=cr
next
global current_weapon
function changeweapon(weapon)
*current_weapon=we(weapon)
end function
function update_weapons()
for w.weapon=next weapon
if w\id=current_weapon then
.....
работа с оружием здесь
.....
return 0
end if
next
end function
второй метод будет занимать чучуть меньше места в памяти но будет НА МНОГО раз медленее первого
я первый метод использую всегда
хотя я раньше использовал чтото типа второго метода и метода что предложил PAX
|
|
|
15.10.2005, 15:19
|
#14
|
|
привязываеш оружие к модели игрока (в процессе создания типов оружия)
а в место точек обычно ставят проверку на выстрел
|
|
|
15.10.2005, 17:06
|
#15
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
хотя я раньше использовал чтото типа второго метода и метода что предложил PAX
|
Ну я еще не писал стрелялок, а этот код я придумал прямо сходу
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:10.
|