Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 09.04.2007, 12:16   #1
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Баг при стельбе из турели

Значит, есть у меня авианосец, и на нём 3 турели. У каждой турели 7 анимаций (Взависимости от угла их поворота). Лень было мудиться с вращением . Из каждой турельки вылетают пули. И я нашёл баг. При определённом угле стрельбы не равном 90 градусов вылетает по 2, затем по 3 итд. пули. Помогите кто чем может.
Если стоит не MouseDown(1) а Mousehit(1) то такой проблем не возникает. Но каждый раз нажимат кнопку мышы очень неудобно.
вот код
.....
Type pula
    Field xp#,yp#
    Field image
    Field frame
    Field ide
End Type
......
deletpula =0
Repeat
Cls

If MouseDown(1)
deletpula =1
For id=0 To 2
pula.pula=New pula
pula\xp=100
pula\yp=200
pula\image=LoadAnimImage("pul.png",17,17,0,2)
pula\frame= 3
pula\ide= id

If id=0
pula\xp=pula\xp-32
pula\yp=pula\yp-37
EndIf
If id=1
pula\xp=pula\xp+11
pula\yp=pula\yp-41
EndIf
If id=2
pula\xp=pula\xp+55
pula\yp=pula\yp-44
EndIf

If ka=0 Then pula\frame=0
If ka=1 Then pula\frame=1

If ka=0 Then vx=-10
If ka=1 Then vx=-7.8

If ka=0 Then vy=-5
If ka=1 Then vy=-8
Next

EndIf

For pula.pula = Each pula   
pula\yp=pula\yp+vy
pula\xp=pula\xp+vx
  If pula\yp <= 30
        Delete pula
        deletpula =0
    Else    
    DrawImage(pula\image, pula\xp, pula\yp,pula\frame)

    EndIf
Next
(Offline)
 
Ответить с цитированием
Старый 09.04.2007, 17:02   #2
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Баг при стельбе из турели

Наверно усе потому что МоусеДаун создает много пуль за время пока зажата кнопка мыши, а МоусеХит одну пулю за оно нажатие кнопки мыши. Навено так, а мож и нет
__________________

(Offline)
 
Ответить с цитированием
Старый 09.04.2007, 17:03   #3
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Баг при стельбе из турели

А еще будет лучше чтобы ты выложил исходник чтобы потестить и посмотреть как там что стреляется и т.д
__________________

(Offline)
 
Ответить с цитированием
Старый 09.04.2007, 19:28   #4
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Баг при стельбе из турели

у меня функция есть, что если нажать грызуна, то следующяя пуля вылетит только тогда, когда та пуля уничтожится:
....
deletpula =0
Repeat
Cls

If MouseDown(1)
deletpula =1
...
If pula\yp <= 30
        Delete pula
        deletpula =0
    Else    
    DrawImage(pula\image, pula\xp, pula\yp,pula\frame)
EndIf
Да, и ещё. такой глюк возникает, только если начать стрелять под каким то углом.
(Offline)
 
Ответить с цитированием
Старый 09.04.2007, 20:21   #5
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Баг при стельбе из турели

Всё. Нашол багу. Оказывается, если пули летят под углом, они при долетая до нужной координаты они уничтожаются не сразу, а по очереди. ит ем самым когда уничтожается 1 из 3-х пуль, возможен выстрел, долетает вторая и происходит другой, и так далее. В итоге функция начинает выполняться не 1 а несколько раз.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 10:16.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com