![]() |
Скорость
Проблема такая
Если увеличиваю кол-во объектов ИИ (врагов) у них добавляется скорость Код:
For en1.enemy1 = Each enemy1 Больше en1\speed# нигде особо не фигурирует...я даже не представлляю в чем там трабла? |
Re: Скорость
где то фигня с таймером, давай всю функцию
|
Re: Скорость
Код:
Function fnUpdateEnemy1() Хотел бы этой командой показать (вывести) скорость для КАЖДОГО ои объекта в типе. Там нужны примудрости? как мне показать, что это объект номер такой-то и скорость его такая-то...? |
Re: Скорость
кстати я тоже встречал такую проблему, но незнаю как ее решить !!
и у меня в коде таймера, насколько я помню, вообще небыло !! |
Re: Скорость
Цитата:
|
Re: Скорость
Project-ом его, Project-ом/
Function textentity(ent,text$="bugaga") cameraproject cam,entityx(ent,1),entityy(ent,1),entityz(ent,1) text projectedx(),projectedy()-30,text,1,0 end function да, cam - ето хэндл на камеру. он должен быть глобальным. |
Re: Скорость
Цитата:
|
Re: Скорость
мне HolyDel посоветовал для решении проблемы избавиться от твиннинга - но тогда я не смогу контролировать FPS и..и много будет еще потерь!
Тогда мне было предложено юзать дельатайминг! Подскажите пожалуйста кто знает что это такое и, если можно, какой-нибудь с ним семпл, что бы можно было по нему понять как это работает! А может есть еще какие-нибудь варианты для решения моей порблемки со скоростью? |
Re: Скорость
дельта тайминг ето вот что :
dt# = FPS_Stable# / FPS_Current#; fps_stable = 60 для примера ... move# = speed# * dt# ... :) при етом получается что перемещение не зависит от фпс |
Re: Скорость
ну попробуй вынести обновление_врагов1 за цикл, может поможет.
|
Re: Скорость
Цитата:
А обновлять-то как? |
Re: Скорость
Пробовал варианты...что-то не получилось
dt# = FPS_Stable# / FPS_Current#; fps_stable = 60 для примера ... move# = speed# * dt# расскажите об этом по подробнее...или еще о чем-нить! Нужно как-то ... снизить скорость ИИ |
Re: Скорость
за
k=1 to ticks next цикл |
Re: Скорость
CreateTimer(25) тебе в помощь!
25 фпс для любой игры пойдет!!! |
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
|
Re: Скорость
Кто-нибудь! ПОЖАЛУЙСТА! подскажите мне с этой траблой! Уже который день мучаюсь!!!
|
Re: Скорость
Перепеши ИИ!
Помогает всегда ;) |
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
Переписывать ниче не надо , просто глянь что ты обрабатываешь в цикле. Попробуй не изменять скорость, а ,допустим, поставить везде значение 1. Или ,как вариант, можно проверить каждую строчку кода и тем самым изловить сей непонятный феномен. |
Re: Скорость
Цитата:
|
Re: Скорость
Причем я никак не могу понять даже ИЗ_за ЧЕГО это!? вроде все ясно, и тем не менее не знаю где можно было напортачить!
|
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
Однако код я представлял! Нужен весь исходник? блин! Просмоатриваю код. Вижу: If en1\timer#<=10 Then en1\speed#=.1 Else en1\speed#=0 MoveEntity en1\obj,0,0,en1\speed# --- Все, больше в цикле о скорости ни слова! И надо же! Где-то тупая бага! |
Re: Скорость
Вероятно, ты обновляешь каждого врага не один раз за проход цикла, а пропорционально их количеству. Проверь еще раз структуру своих вложенных циклов.
... Собственно, эти проблеммы возникают исключительно от нечеткого понимания того, как должна выглядеть завершенная программа (каждый ёё самостоятельный блок) и что она должна делать. Алгоритмика как живая абстракция рулит, абстрактные неигровые задачи и КуВасик- тоже. |
Re: Скорость
ну гипотетически ... чем больше юнитов тем чаще en1\timer становится <=10 ... копай в ету сторону
ps. или то что сказал Diplomat |
Re: Скорость
Цитата:
Цитата:
|
Re: Скорость
Цитата:
А насчет сколько раз обновляю - то ответ - 1. Эта функция - функция обновления - стоит 1 раз в главном цикле |
Re: Скорость
Цитата:
|
Re: Скорость
Цитата:
Global frametimer=CreateTimer(30) Repeat WaitTimer(frameTimer) Cls For en1.enemy1=Each enemy1 If (en1\obj<>0) Then fnUpdateEnemy1() Next UpdateWorld() RenderWorld() Flip(0) Forever ну то есть 1 (один) раз! |
Re: Скорость
Тю, так у тебя вложенный цикл.
Код:
For en1.enemy1=Each enemy1 |
Re: Скорость
Цитата:
For Next Гы) написал спылу ответ! Убрал for ... next, оставив fnUpdateEnemy1() в цикле и все заработало)) |
Re: Скорость
Цитата:
Цитата:
|
Re: Скорость
Цитата:
Тогда как мне проверить: Если есть ии на поле, то включать fnUpdateEnemy Я думал, что тогда я это и проверял... |
Re: Скорость
так:
ttenemys1=0 for en1.enemy1=each enemy1 ttenemys1=ttenemys1+1 next if ttenemys>0 then updateen1() |
Часовой пояс GMT +4, время: 22:09. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot