Показать сообщение отдельно
Старый 04.09.2005, 06:26   #9
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Выстрелы

Global shot_sprite=LoadSprite("sprite.bmp")
это будет спрайт выстрела.
В создании мира добавим
HideEntity shot_sprite
скрыв таким образом загруженный спрайт.
Создадим функцию порождения выстрела
Function create_Shot(x#,y#,z#,pitch#,yaw#,roll#)
 
End Function
6 аргументов описывают вектор выстрела: з координаты и углы вращения по осям
Создадим тип выстрела:
Type shot
	Field entity
End Type
Далее...
Function create_Shot(x#,y#,z#,pitch#,yaw#,roll#)
	s.shot=New shot
	s\entity=CopyEntity(shot_sprite)
	PositionEntity s\entity,x#,y#,z#,1
	RotateEntity s\entity,pitch#,yaw#,roll#,1
	Return True
End Function
В первой строке при помощи опереатора NEW создаём новый элемент типа shot.
Теперь через S мы можем обратиться к любому полю данного элемента типа shot.
s\entity - обращаемся к полю entity вновь созданного элемента. Сохраняем туда handle копии спрайта. Далее позиционируем вновь созданный (скопированный) спрайт и разворачиваем его. Последний аргумент 1 (true) означает, что действия будут выполнятся относительно мировых координат и осей.
Function update_shot()
	vs#=1
	For a.shot=Each shot
 MoveEntity a\entity,0,0,vs#
	Next
End Function
For a.shot=Each shot - на первый взгляд, заковыпистая конструкция. Такой цикл будет помещать по очереди в переменную а хендлы всех элементов указанного типа (в данном случае shot). Таким образом данный цикл продвинет все спрайты выстрелов на vs# вдоль оси Z.
Добавляем update_shot() в главный цикл.
Добавим строку
If MouseHit(1) create_shot(EntityX(user),EntityY(user),EntityZ(user),EntityPitch(camera),EntityYaw(user),0)
В ф-цию обновления игрока.
Уже можно посмотреть в действии:

__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием