Ответ: Эфект от выстрела
Terminator , я пошёл хитрым путём. Хочу тебя спросить , а у тебя есть функция пули??? Так вот я спрайт пули просто заменил на спрайт декали.))
Добавил такие параметры EntityRadius( в даном случае он = 0.009), коллизию поставил так: Collisions typeshot,typelevel,2,1 . Ну вот как-то так.
А теперь долгожданный код:
Global vs#=45; скорость нашей пули
Global shot=LoadSprite ("data/Sprites/bullet_hole.bmp"); пуля как дырка
HideEntity shot
Type shot
Field entity
Field dist#
End Type
;Это код самой пули
Function create_Shot(x#,y#,z#,pitch#,yaw#,roll#)
s.shot=New shot
s\entity=CopyEntity(shot)
PositionEntity s\entity,x#,y#,z#,1
EntityType s\entity,typeshot
RotateEntity s\entity,pitch#,yaw#,roll#,1
ScaleSprite s\entity,0.04,0.04
EntityRadius s\entity,0.006
RotateSprite s\entity,Rnd(360)
SpriteViewMode s\entity,2
Return True
End Function
Function update_shot()
max_dist#=3000
For a.shot=Each shot
MoveEntity a\entity,Rnd(0.2,0.3),0,vs#
a\dist#=a\dist#+vs#
bot_h = EntityCollided(a\entity,typelevel)<>0
If a\dist#>max_dist#
FreeEntity a\entity
Delete a
Exit
EndIf
Next
End Function
;ну и после репит
if mousedown(1)
create_shot(EntityX(player)-0.5,EntityY(player)+0.7,EntityZ(player),EntityPitc h(player)-2,EntityYaw(player),0)
endif
;До рендерворлд
update_shot()
Вот и всё . А сколько я времени убил что бы этого добиться!!! Ну всё же и это меня не устраивает! Буду думать , работать.
__________________
Самый первый и самый великий программист - это Бог.
|