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

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

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

Ответ
 
Опции темы
Старый 27.03.2013, 10:12   #1
Rashgild
AnyKey`щик
 
Регистрация: 26.03.2013
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Фокус на объекте

Здравствуйте!

Прикрепил код (вместе с изображениями) в архиве

Существуют два изометрических тайла - синий (сама карта) и зеленый (персонаж)

Вопрос : как реализовать подобие фокуса камеры на зеленом персонаже. Реализовывал с помощью передвижения самой карты (т.е. сам зеленый не двигается, а двигается синяя плоскость), но потом решил, что в связи с этим будут и другие проблемы, как полная перерисовка объектов, находящихся на карте. Так как лучше сделать?
Вложения
Тип файла: rar TestProject.rar (3.7 Кб, 87 просмотров)
(Offline)
 
Ответить с цитированием
Старый 27.03.2013, 14:56   #2
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,569
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Фокус на объекте

реквестирую бинарник.
+ я не понял вопрос. Фокус и слежение - разные вещи, м.б. вы о втором?)
__________________
(Offline)
 
Ответить с цитированием
Старый 27.03.2013, 20:32   #3
Nikich
Бывалый
 
Регистрация: 21.12.2011
Сообщений: 843
Написано 149 полезных сообщений
(для 269 пользователей)
Ответ: Фокус на объекте

Graphics 800,600
Global img1 = LoadImage("isoTiles/testGreen.png")
Global img2 = LoadImage("isoTiles/testBlue.png")
SetBlend ALPHABLEND
Global sx=300,sy=100 'стартовые координаты(откуда начинаю отрисовывать
Global stepx=sx, stepy =sy ' Шаг по Х и У , в начале == координатам 300 Х 100
Global cameraX,cameraY
While Not KeyDown(27) ' Главный цикл
Cls
drawingMap()

If KeyDown(KEY_RIGHT) Then  stepx :+10 ; stepy :+5 ;
If KeyDown(KEY_LEFT) Then stepx :-10 ; stepy :-5
If KeyDown(KEY_UP) Then stepx :+10 ; stepy :-5
If KeyDown(KEY_DOWN) Then stepx :-10 ; stepy :+5
If KeyDown(KEY_H) Then ShowTestData()

Flip(1) 
Wend 

Function IsoX(x,y)
rez = Int(((2*(y+cameraY)-(x+cameraX))/162))
Return rez
End Function

Function IsoY(x,y)
rez = Int((((x+cameraX)+2*(y+cameraY))/162))
Return rez
End Function


Function drawingMap()
cameraX=stepx-400
cameraY=stepy-300
For i=IsoX(800,0)-2 To IsoX(0,600)+1
 	For j=IsoY(0,0)-2 To IsoY(800,600)+1
			x=(j-i)*81-cameraX                                    
			y=(i+j)*40-cameraY
            DrawImage img2 ,x,y
        Next
Next
DrawImage img1 ,stepx-41-cameraX,stepy-20-cameraY 'выводим "персонажа"
End Function




Function ShowTestData()
 mX =MouseX()
 my% =MouseY()
DrawText "position X = "+stepx, 1,1
DrawText "position Y = "+stepy, 1,20
DrawText "mouse X = "+mX , 1,40
DrawText "mouse Y = "+my , 1,60

EndFunction
Если делать передвижение игрока по тайлам, эффекта не будет, ведь все тайлы одинаковые.
Размеры тайлов я бы советовал вам изменить. Уж больно они кривые.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Rashgild (27.03.2013)
Старый 27.03.2013, 21:40   #4
Rashgild
AnyKey`щик
 
Регистрация: 26.03.2013
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Фокус на объекте

Nikich, спасибо большое. Я еще сам конкретно не определился с целями, пока только начал изучать, смотрю, как реализовать ту или иную задумку. Следующим моим шагом будет переход персонажа в тайл, по которому был совершен клик мышкой, поэтому я думаю, что реализовать с передвижением по тайлам будет лучше.
(Offline)
 
Ответить с цитированием
Старый 27.03.2013, 21:54   #5
Nikich
Бывалый
 
Регистрация: 21.12.2011
Сообщений: 843
Написано 149 полезных сообщений
(для 269 пользователей)
Ответ: Фокус на объекте

Я бы посоветовал вам сделать генерацию мира прежде этого. Добавьте ещё тайл земли, к примеру, и пусть карта случайно генерируется.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 22:33.


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