purebasic.info

PureBasic forum
Текущее время: Вт янв 16, 2018 6:02 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 12, 2013 12:53 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 716
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Цитата:
не понимаю я что за float

Это те самые "десятичные знаки после запятой".
Пример :
Obj_X.f=100 : Obj_Y.f=100 ; определяешь переменные объекта
Move(@Obj_X,@Obj_Y,45,0.02)
DisplaySprite(1,Obj_X,Obj_Y)

Насчет угла- любой угол.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 12, 2013 1:02 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
работает, спасибо.

полагаю скорость должна быть изменяемая. как например объект не сразу выходит на пиковую скорость, а разгоняется постепенно, плюс падение скорости на повороте.

процедура шикарнейшая.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 12, 2013 1:30 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
Код:
1
2
3
4
5
6
7
8
9
    If KeyboardPushed(#PB_Key_Up)
      If speed < topspeed      
        speed = speed + koefic
      EndIf
      Move(@Obj_X,@Obj_Y,angle,speed)
    ElseIf speed > 0
      speed = speed - (koefic*4)
      Move(@Obj_X,@Obj_Y,angle,speed)
    EndIf



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 14, 2013 7:13 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
попытался заставить объект кружится за мышкой. вроде как понадобится эта команда:
Цитата:
Syntax

Result.f = ATan2(x.f, y.f)

Description

Calculates the angle in radian between the x axis and a line drawn in the direction specified by 'x' and 'y'. It can be used to calculate angles between lines in 2D or to transform rectangular coordinates into polar coordinates.


к примеру объект находится в точке 100, 100. мышка в 150, 50. (получается выше и правее, то есть примерно 45 градусов)

коим образом правильно использовать ATan2? мышку - объект, или объект - мышку, если второе - то там будет отрицательное число...
ATan2(150-100,50-100)

переводим в градусы:
Degree(ATan2(150-100,50-100)) = -45

однако при использовании RotateSprite3D(1, angle, #PB_Absolute) это будет разворот влево, а не вправо. как быть? множить на -1?

если добавить -1 в формулу, то тогда при других координатах мышки, полагаю, возникнут проблемы. например в 50, 150. (должен быть градус 225)
Degree(ATan2(50-100,150-100)) = 135

Изображение

135 это несколько не то, нежели 225 :) и тогда -1 уведет несколько в иную степь.

выходит нужно что-то типа:
Код:
1
2
3
4
5
6
7
8
 
angleto = Degree(ATan2(xmouse-xobject,ymouse-yobject))
if angleto < 0
  angleto*(-1)
else
  angleto = 360 - angleto
endif
 



проверим...

***

или хотя даже так наверное:
Код:
1
2
3
4
5
6
7
8
9
 
angleto = Degree(ATan2(xmouse-xobject,ymouse-yobject))
 
angleto = 360 - angleto
 
if angleto > 360
angleto - 360
endif
 



***

однако нифига... в случае если мышкина Y координата больше Y объекта нужна другая формула...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 14, 2013 7:35 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
нука а так...
Код:
1
2
3
4
5
6
7
8
9
10
11
angleto = Degree(ATan2(xmouse-xobject,ymouse-yobject))
 
if xmouse > xobject and ymouse < yobject
angleto = 90 - angleto
elseif xmouse > xobject  and ymouse > yobject
angleto = 90 + angleto
elseif xmouse < xobject  and ymouse > yobject
angleto = 270 - angleto
else
angleto = 270 + angleto
endif



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 14, 2013 8:14 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
все. вот так пашит :)
Код:
1
2
3
4
5
If angleto > -91
  angleto + 90
Else
  angleto = 450 + angleto
EndIf



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 14, 2013 9:43 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 716
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
SereZa
Ты с кем постоянно разговариваешь?

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 14, 2013 10:00 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 80 раз.
Пункты репутации: 24
AndyLy писал(а):
Ты с кем постоянно разговариваешь?
Ну заработался человек, с кем не бывает :D :D

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 15, 2013 12:38 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
можно ли как-то "дребезжание" объекта при перемещении побороть? (например при векторе перемещения в 85 градусов это самое дребезжание заметно ярче всего) или это недостаток 2D и ограничение пикселов цельными числами?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 15, 2013 1:27 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 716
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
"ограничение пикселов цельными числами"
Да
"можно ли как-то "дребезжание" объекта при перемещении побороть?"
Например можешь сделать скорость движения быстрее, чтобы незаметно было.
Сгладить/скрыть какой-нибудь анимацией...

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 15, 2013 1:36 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
ясно, типа клубов дыма из под колес. или сделать контур объекта шириной в 2 пикселя. тот что ближе к телу нормальный, а второй - внешний полупрозрачный. по идее такой эффект должен будет смазать немного эффект дребезжания.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 20, 2013 2:10 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
AndyLy писал(а):
Ты бы хоть выложил пару скринов- похвастался.

пока хвастать нечем... в свете переделывания сетевой составляющей пару клиент-сервер развалил :)

также еще не пойму как сделать скроллинг... карта будет большая. сейчас видна малая её часть.

и пока все очень и очень топорно. в архиве ехе. и вроде без троянов - но я не уверен :))


Вложения:
server.rar [344.82 KiB]
Скачиваний: 119
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 20, 2013 6:02 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2241
Откуда: Russia — Belarus
Благодарил (а): 0 раз.
Поблагодарили: 67 раз.
Пункты репутации: 11
Боюсь, что надо как-то увеличивать размер игрового поля (координаты поточнее, float). Сейчас, если танк едет не под ровным углом, то видно, как он передвигается "лесенкой".

_________________
EnableExplicit User


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 20, 2013 11:13 am 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1576
Откуда: Алматы
Благодарил (а): 12 раз.
Поблагодарили: 39 раз.
Пункты репутации: 5
и особенно это заметно под углом 85 градусов. но вроде как мы пришли к выводу, что виновато "ограничение пикселов цельными числами"


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 20, 2013 1:58 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 716
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
SereZa
Неплохо для начала.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB