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

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

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

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 01.09.2015, 17:07   #31
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: 2d сетка

Сообщение от St_AnGer Посмотреть сообщение
Прикладывай хотя бы скриншоты, а лучше всё таки переходи на распространённые нынче вещи
Распространенные и доступные (JS! )
(Offline)
 
Ответить с цитированием
Старый 06.09.2015, 15:49   #32
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Собственно с чего начался пост ... сетка вида ... ну типа перспектива

псевдо 3д


ОСоБЕННОСТИ :
регулируемый наклон ;
произвольное количество тайлов (в пределах раумного конечно );
регулируемая высота и ширина тайла . . .
код прилагаю под спойлером:
Global mz#,grx ,gry 

Graphics 800,600 ,32,2
SetBuffer BackBuffer() 
grx = GraphicsWidth()/2 : gry = GraphicsHeight()/2
tile_sizeX = 50
tile_sizeY = 20
a = 5
b = a+a+1
ClsColor 34 ,139 ,34  
While Not KeyHit(1) 
Cls 
mx# = MouseX() : my# = MouseY() : mz# = MouseZ()*0.1+1

For y = 1 To b 
	For x = -a To a 
		px# = x*tile_sizeX +(y*mz)*x
		py# =  y*tile_sizeY
		
		Color 3 ,35, 3 
		If x<a Line grx + px,py +gry , grx +  ( (x+1)*tile_sizeX )+((y*mz)*(x+1)),py+gry
		If y<b  Line grx + px,py+gry , grx +  ( x*tile_sizeX )+((y+1)*mz*x) ,(y+1)*tile_sizeY+gry
		
		If y<b And  x<a Text grx +px+20 ,py+2+gry , (x+a+1)+" : "+y 
	Next
Next 
; номера тайла по Х и Y координатам мыши
	ym# = Floor#((my-gry) / tile_sizeY )
	xx# = Floor#(  (( mx-grx )  /   (((my-gry) / tile_sizeY )*mz+tile_sizeX)  )   )

		Text mx,my-10,Int(xx+a+1) +" : "+Int(ym)

		Text 20,20,"MouseX : "+Int(mx)+" MouseY : "+Int(my)+" MouseZ : "+mz
		Text 20,40,"X : "+Int(xx+a+1)
		Text 20,60,"Y : "+Int(ym)
		
		DrawSelectTile(xx,ym,tile_sizeX,tile_sizeY)
Flip 
Wend 
End

Function DrawSelectTile#(ntx,nty,tileSizeX,tileSizeY )
	Color 255,255,255
	tx# = ntx*tileSizeX +(nty*mz)*ntx                            : ty# = nty*tileSizeY : ty2# = (nty+1)*tileSizeY 

	tx2# = ((ntx+1)*tileSizeX +((nty+1)*mz)*(ntx+1) )
	px# = (tx+tx2)/2
	py# = (ty+ty2)/2

	Oval  grx +px -4,gry + py -4,8,8
	;Line grx +tx ,gry + ty ,grx +tx2 ,gry + ty2
End Function
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (06.09.2015)
Старый 25.04.2016, 07:54   #33
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Возвращаясь к теме.
А теперь внимание, )) правильные формулы :

; вычисление координат ячейки
; tileNumberY , tileNumberX --> количество ячеек по вертикали и горизонтали
; tileSizeY , tileSizeX --> размер ячеек по вертикали и горизонтали
; tileSpaceY , tileSpaceX --> смещение ячеек по вертикали и горизонтали
; tileView --> параметр задающий искажение по горизонтали ("перспектива")


for j = 0 to tileNumberY
for i = 0 to tileNumberX

x = i * tileSizeX + j * (i * tileView) + tileSpaceX
y = j * tileSizeY + tileSpaceY

next:next

; вычисление номеров ячейки по координатам мыши

ym = floor((mouseY() - tileSpaceY) / tileSizeY);
xm = floor((mouseX() - tileSpaceX) / tileView / (((mouseY() - thisY - tileSpaceY) / tileSizeY) + (tileSizeX/tileView ))) + tileNumberX;
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 06.01.2018, 14:17   #34
denis2000513
AnyKey`щик
 
Аватар для denis2000513
 
Регистрация: 05.01.2018
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: 2d сетка

---
__________________
(Offline)
 
Ответить с цитированием
Старый 06.01.2018, 22:09   #35
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Ответ: 2d сетка

Сообщение от denis2000513 Посмотреть сообщение
---
Че надо то?
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 13:44.


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