[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Задержка перед выстрелом
OptimusДата: Суббота, 08 Мая 2010, 10:41 | Сообщение # 1
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
Не получается сделать нормально. Играл с таймерами. Либо после первой пули больше не стреляет, либо стреляет без задержки, но чуть чуть тормозится вся игра(ограничение fps как я понял). Подумываю о засекании времени от времени выстрела. Однако немало памяти займет, я думаю. Может быть Полегче способ есть, как думаете.

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
maxturboДата: Суббота, 08 Мая 2010, 11:35 | Сообщение # 2
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
Есть полегче, но если полазиешь по форуму то здесь не однократно создавалась эта тема, и был на нее ответ!!!
 
maxturboДата: Суббота, 08 Мая 2010, 11:48 | Сообщение # 3
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
http://igrostroenie.ru/forum/3-316-1
вот тебе ссылка...читай одиннадцатый пост
 
maxturboДата: Суббота, 08 Мая 2010, 12:03 | Сообщение # 4
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
а вот собственно сама задержка
If keydown(...)
If millisecs()>time+1000
If millisecs()
Тут твой код выстрела...
Endif
Endif
Пардон что не выделил код так как пишу с телефона :-)
 
OptimusДата: Суббота, 08 Мая 2010, 12:53 | Сообщение # 5
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
отвечаю на все посты по порядку. 1-у меня поиск не работает, я с телефона. 2-спасибо за ссылку.3-а чем является time? Time=millisecs? Я тоже с телефона:)

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
maxturboДата: Суббота, 08 Мая 2010, 13:49 | Сообщение # 6
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
да :-)
 
OptimusДата: Суббота, 08 Мая 2010, 16:16 | Сообщение # 7
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
Ты мне интересный код предложил. Если ставить time=millisecs() в глобальных то он не дает мне стрелять 1000 милисекунд с начала игры. Если поставить в функции стрельбы, то условие всегда будет ложно. Все циклично обновляется

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
DrawДата: Суббота, 08 Мая 2010, 16:53 | Сообщение # 8
Продвинутый
Группа: Участники
Сообщений: 194
Награды: 0
Замечания: 0%
Статус:

Команда: DeforShys
Проектов: 8 (2 активных 6 инактив)
все очень просто
Code

if keydown(..)
..
if millicesc()>shotdelay+1000
shotdelay=millicesc()
..
endif
endif

shotdelay я написал так что б чуть в тему шло и у нубпрогеров это не собьет другие time



ICQ 557709132 пиши. Отвечу на любой вопрос по блицу
 
OptimusДата: Суббота, 08 Мая 2010, 17:22 | Сообщение # 9
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
твой код ни чем почти не отличается от предыдущего. Либо не стреляет, либо стреляет без перерыва

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
DrawДата: Суббота, 08 Мая 2010, 17:48 | Сообщение # 10
Продвинутый
Группа: Участники
Сообщений: 194
Награды: 0
Замечания: 0%
Статус:

Команда: DeforShys
Проектов: 8 (2 активных 6 инактив)
значит у тебя это написано как будто в типе и перечесляется несколько раз
либо убери нагрузку на millisecs() функцию

дай код цикла я исправлю



ICQ 557709132 пиши. Отвечу на любой вопрос по блицу
 
OptimusДата: Суббота, 08 Мая 2010, 17:57 | Сообщение # 11
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
сейчас дам. А тебе функцию выстрела или цикл, где вызывается функция?

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
DrawДата: Суббота, 08 Мая 2010, 18:03 | Сообщение # 12
Продвинутый
Группа: Участники
Сообщений: 194
Награды: 0
Замечания: 0%
Статус:

Команда: DeforShys
Проектов: 8 (2 активных 6 инактив)
цикл и ключевые строчки связаные с выстрелом


ICQ 557709132 пиши. Отвечу на любой вопрос по блицу
 
maxturboДата: Суббота, 08 Мая 2010, 18:28 | Сообщение # 13
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
Пробуй делать фпс а игре а переменная time будет равна фпс тоесть 60 просто не помню как это все вводится :-)
 
maxturboДата: Суббота, 08 Мая 2010, 18:32 | Сообщение # 14
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
а лучше действительно код цикла выложи и там видно будет что у тебя не так! :)
 
OptimusДата: Суббота, 08 Мая 2010, 18:38 | Сообщение # 15
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
я с телефона, я завтра напишу

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
OptimusДата: Вторник, 11 Мая 2010, 20:17 | Сообщение # 16
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
ПарДон за такое завтра, у меня счас интернета нет, я завтра или послезавтра через друга скину

Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
maxturboДата: Вторник, 11 Мая 2010, 23:07 | Сообщение # 17
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
ну давай :)
 
maxturboДата: Четверг, 13 Мая 2010, 01:42 | Сообщение # 18
Профи
Группа: Участники
Сообщений: 379
Награды: 0
Замечания: 0%
Статус:

Профессия: Программер
Проектов: 1 в разработке
Вот держи код выстрела с задержкой и обрати внимание на ту часть кода про каторую я тебе говорил и как надо было ее вписывать
Code

Graphics3D 640,480,32,2
SetBuffer BackBuffer()
cam=CreateCamera()
time=MilliSecs()
PositionEntity cam,0,3,-10
lit=CreateLight()
Type Dude
Field entity,speed#
End Type
Repeat

For d.Dude=Each Dude
MoveEntity d\entity,0,0,1
If EntityDistance(cam,d\entity)>200
FreeEntity d\entity
    Delete d
    EndIf
     Next

If MouseDown(1)
If MilliSecs()> time+1000;(Задержка на одну сек.)
time=MilliSecs()
For k=1 To 1
sphere=CreateSphere()
HideEntity sphere
If bul=0
d.Dude=New Dude
d\entity=CopyEntity( sphere )
EndIf

Next
EndIf
EndIf

RenderWorld
UpdateWorld
Flip
Until KeyHit(1)
End


Сообщение отредактировал maxturbo - Четверг, 13 Мая 2010, 01:44
 
OptimusДата: Четверг, 13 Мая 2010, 10:33 | Сообщение # 19
Крутой
Группа: Участники
Сообщений: 646
Награды: 0
Замечания: 0%
Статус:

Профессия: Программист
Команда: Solomanders te@m
Проектов: TripleWar(разработка)
Сейчас код дам.......

вот вызываю из цикла

Code
  If MouseHit(1) create_shot(EntityX(user),EntityY(user),EntityZ(user),EntityPitch(cam),EntityYaw(user),0)

авот и сама функция и обновление выстрела

Code


Function create_shot(x#,y#,z#,pitch#,yaw#,roll#)
shottime=MilliSecs()
If MilliSecs()>shottime=1000
    s.shot=New shot
    s\entity=CopyEntity(shot_sprite)
    EntityType s\entity,SHOTT
    PositionEntity s\entity,x#,y#,z#,1
    RotateEntity s\entity,pitch#,yaw#,roll#,1
    patrons=patrons-1
EndIf  
End Function

Function update_shot()
pt_patrons=30-patrons
   v#=1
   max_dist#=1000
   For a.shot=Each shot
     ;=
     If a\time=0 a\time=MilliSecs()
     new_time=MilliSecs()
     delta_t=new_time-a\time
     a\time=new_time
     vs#=v*delta_t
     ;=
     MoveEntity a\entity,0,0,vs#
     a\dist#=a\dist#+vs#
If a\dist#>max_dist#
       FreeEntity a\entity
       Delete a
     ElseIf EntityCollided(a\entity,KARTA)<>0
       FreeEntity a\entity
       Delete a
EndIf
If patrons=0 Then
patrons2=patrons2-pt_patrons
patrons=patrons+pt_patrons
EndIf
      
   Next
End Function


Internet Explorer-замечательный браузер для того чтобы зайти и скачать Firefox
 
DrawДата: Четверг, 13 Мая 2010, 19:50 | Сообщение # 20
Продвинутый
Группа: Участники
Сообщений: 194
Награды: 0
Замечания: 0%
Статус:

Команда: DeforShys
Проектов: 8 (2 активных 6 инактив)
local shottime=MilliSecs()
все что требуется. Я не читал дальше этой строчки и поэтому возможно я не прав



ICQ 557709132 пиши. Отвечу на любой вопрос по блицу
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: