Сообщение от undertaker
Я хочу сделать, чтобы гг стрелял в сторону курсора, только ничего не получается подскажите, кто знает,заранее благодарен
|
1) Узнаём угол поворота от игрока до курсора
Local fang# = ATan2(MouseY() - player_y, MouseX() - player_x)
Где
player_x и
player_y координаты игрока.
2) Зная угол мы можем создавать пули
Абстрактно пули у нас такие:
Type TBullet
Field x#, y#, angle#
End Type
angle# - угол поворота пули
Создавать новую будем так:
Local b.TBullet = New TBullet
b.x = player_x
b.y = player_y
b.angle = fang ; Это там раньше у нас угол который мы получали
3) Отлично! Пуля создана теперь надо её "оживить"
Function TBullet_Update()
For b.TBullet = Eachin TBullet
b\x = b\x + Cos( b\angle ) * 2 ;- поменяй, это скорость пули
b\y = b\y + Sin( b\angle ) * 2 ;- это тоже :)
; Проверяем если пуля улетела за экран то удаляем
If b\x<0 Or b\x>GraphicsWidth() Or b\y<0 Or b\y>GraphicsHeight() Then
Delete b
End If
Next
End Function
Function TBullet_Draw()
For b.TBullet = Eachin TBullet
Oval(b\x - 3, b\y - 3, 6, 6)
Next
End Function
Данные ф-ции надо вызывать в главном цикле.
Большая просьба - изучи, подумай как это работает.
* мог что-либо напутать. Писал в браузере. На блице давно ничего не писал.