|
2D-программирование Вопросы, касающиеся двумерного программирования |
23.05.2007, 14:28
|
#1
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
плавный скроллинг в тайл движке?
Сделал скроллинг по-тайловый, вот так:
Method Draw()
For Local x:Byte = 0 Until VisibleX
For Local y:Byte = 0 Until VisibleY
If Map[x + CameraX + ((y + CameraY) * Width)] = False
Tile0.Draw( (x * TTile.Width) , (y * TTile.Height) )
Else
Tile1.Draw( (x * TTile.Width) , (y * TTile.Height) )
End If
Next
Next
End Method
Блин, не могу сделать плавный (попиксельный) скроллинг карты. Может кто знает как это делается???
|
(Offline)
|
|
23.05.2007, 14:30
|
#2
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: плавный скроллинг в тайл движке?
При прибавлении значения домножай на что нибудь Например на *0.1
|
(Offline)
|
|
23.05.2007, 14:55
|
#3
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
не понял что домножатья? у меня ф-ция апдэйт :
Method Update()
If KeyDown(KEY_UP) CameraY :- 1 If KeyDown(KEY_DOWN) CameraY :+ 1
If KeyDown(KEY_RIGHT) CameraX :+ 1
If KeyDown(KEY_LEFT) CameraX :- 1
end method
что домножать то?
|
(Offline)
|
|
23.05.2007, 14:58
|
#4
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: плавный скроллинг в тайл движке?
Ну или не +1 а +0.01
|
(Offline)
|
|
23.05.2007, 15:00
|
#5
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
Нет, не работает, а другие варианты есть?
|
(Offline)
|
|
23.05.2007, 20:52
|
#6
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
тоже самое сделать только объявить cameraX и cameraY как флоат
|
(Offline)
|
|
24.05.2007, 00:01
|
#7
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: плавный скроллинг в тайл движке?
Сделать 2 значения скорости, и одно значение максимальной скорости, затем к значениям CameraX и CameraY, прибавлять их каждый цикл, а их изменять так:
Пра нажатии вправо:
CamXSp#=CamXSp+((CamMaxSp#-CamXSp)*.05)
Влево:
CamXSp#=CamXSp+((-CamMaxSp#-CamXSp)*.05)
И после всех изменений снижение скорости:
CamXSp .97
Ну и т.п, .05 это значение плавности, с ним можешь поиграться, ну в этом роде делай дальше, примерно так. Я такие плавности применяю, т.к. в них есть эффект резкого разгона.
|
(Offline)
|
|
25.05.2007, 13:59
|
#8
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
MoKa а можно поподробнее, примерчик какой-нить...
|
(Offline)
|
|
28.05.2007, 01:16
|
#9
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: плавный скроллинг в тайл движке?
Как понял вид сверху?
Вот, давненько делал.
1,2,3 эффекты. WASD перемещение.
|
(Offline)
|
|
28.05.2007, 14:11
|
#10
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
Мока ну ты даешь! Я начинающий, а ты мне такой крутяк предлагаешь ))) я просто в шоке ! Я такое никогда не напишу. Попроще бы чего-нибудь.
|
(Offline)
|
|
29.05.2007, 02:20
|
#11
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: плавный скроллинг в тайл движке?
Там всё просто, значит истинна в этих строках:
CamSp#=5 ;Skorostj
CamXSp=(CamXSp+(((IKdD-IKdA)-CamXSp)*.05))
CamZSp=(CamZSp+(((IKdS-IKdW)-CamZSp)*.05))
Gx:+(CamXSp*CamSp)
Gz:+(CamZSp*CamSp)
Gx и Gz - это глобальные координаты камеры.
CamXSp и CamZSp, объяви в глобали.
ЗЫ По секрету, это 3 мой код на БМаксе
|
(Offline)
|
|
29.05.2007, 15:29
|
#12
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
IKdD-IKdA - а что это такое? я так понял что это кнопки для движения камеры. Но почему они друг из друга вычитаются? глобальные координаты камеры это верхний левый или центр камеры?
|
(Offline)
|
|
29.05.2007, 18:49
|
#13
|
|
Re: плавный скроллинг в тайл движке?
ну смотри (я про кнопки)
есть выражение ( A-B )
если зажата A то выражение = 1
если B то = -1
если A и B то = 0
тоесть если нажать A то поедем прямо (или куда нам надо)
если B то поедем в противоположную сторону
если A и B то никуда не поедем
|
|
|
29.05.2007, 20:29
|
#14
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: плавный скроллинг в тайл движке?
ну смотри (я про кнопки)
есть выражение ( A-B )
если зажата A то выражение = 1
если B то = -1
если A и B то = 0
тоесть если нажать A то поедем прямо (или куда нам надо)
если B то поедем в противоположную сторону
если A и B то никуда не поедем
|
Именно так.
IKd? - это переменная, к которой привязана кнопка, тоесть:
IKdD=KeyDown(Непомню ИД буквы D)
глобальные координаты камеры это верхний левый или центр камеры?
|
Левого верхнего.
|
(Offline)
|
|
30.05.2007, 15:29
|
#15
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: плавный скроллинг в тайл движке?
Блин с кнопками, это прикольно, я понял. ) У меня получилось, правда есть такая ерунда, что камера продолжает движение после отпускания кнопки до тех пор пока не нажмешь другую кнопку.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:41.
|