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

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

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

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

Ответ
 
Опции темы
Старый 25.05.2014, 18:40   #16
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: 2d сетка

Сообщение от polopok Посмотреть сообщение
Думаю не стоит так переживать , тут главное формулы правильные вывести ,а там можно под любой язык или среду переписать.
Признаться пишу от безделия , а так хоть мозг не атрафируется и чтоб труды не пропали даром выкладываю сюда.
Дык тем более. JS на много ближе к любому другому языку, нежели блиц. JS знают на много больше людей, и у тебя напрямую будет в интернете что-то лежать, и гуглиться.
Труд твой тут в большинстве как раз и пропадает, те кому нужно - сами напишут, а те кто не может сам, будет искать на его языке что-то, или приблизительное. А на блице сейчас ничего не делают (про тех кто сидит в прошлом не говорю, "им не поможешь").
А вот польза от JS мелкой демки такого рода, где-то с заголовком и пару строками описания, гуглятся отлично и народу пригодится. Пользы больше, и тебе приятнее думаю было бы.
(Offline)
 
Ответить с цитированием
Старый 25.05.2014, 20:04   #17
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Мдаа... Ты трав . А то зациклился на блице ))) , самому смешно .
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (25.05.2014)
Старый 25.05.2014, 20:10   #18
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Вопрос писать на java или на javascript
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 25.05.2014, 20:13   #19
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,022
Написано 1,157 полезных сообщений
(для 2,779 пользователей)
Ответ: 2d сетка

Ну, предполагаю, что Максим имел ввиду именно JavaScript, а не на Java.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (25.05.2014)
Старый 25.05.2014, 20:28   #20
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: 2d сетка

JavaScript.
Java требует компиляции и предустановленной всякой хрени. И вообще не имеет ничего общего с JavaScript'ом. Хотя у обоих С подобный скрипт и название схожее. Но на этом их сходства заканчиваются.

Плюс JS в том что он работает во ВСЕХ броузерах. Поддержка того же canvas 2d есть практически везде сейчас (даже в IE9 который уже старьё и поддерживать не стоит).
И можно просмотреть исходники сразу. И там же демки показывать - удобно очень.

Рекомендую начать с простого, вот ресурсы которые стоит использовать:
MDN - там документация по JavaScript'у одна из наилучших, так же они отлично описывают разные API и стандарты, с примерами и пометками "на все случаи жизни". Если что-то ищешь по JS в гугле, добавляй "mdn" и будет хорошая инфа.

HTML5 Canvas Tutorials - очень удобная и доступная документация по canvas 2d с примерами и детальной документацией. Примеры есть на всё. По сути там описан практически весь функционал canvas 2d.

CodePen - отличная тулза для прототипирования, и вообще можно там писать код, и сразу есть превью, и выкладывать это онлайн, другие могут также обновлять. "Доступно и приятно"

Да и новый язык изучить - всегда полезно, тем более такой как JS который имеет уйму применений, как в веб разработке, игр (canvas, webgl, да и iOS скоро будет поддерживать webgl - инфа 100%!), так и на стороне сервера - node.js.
(Offline)
 
Ответить с цитированием
Старый 25.05.2014, 20:33   #21
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Кстати , пытаюсь 2д сетку в шарообразную сетку сделать , пока то ,что получилось.
если сталкивались с данной темой киньте ссылку .
time = CreateTimer(60)
Global x,y
Const tt = 18 ,r2 = 70
Dim mapX(324,324),mapY(324,324) ,mapR(324,324) ,mapG(324,324) ,mapB(324,324) 

Graphics 800,600,32,2
SetBuffer BackBuffer()


For b=1 To tt ;Step 0.5
For a =1 To tt ;Step 0.5

	SphireView(a*20,b*20)
	mapX(a,b) = x
	mapY(a,b) = y
	mapR(a,b) = Rnd(225)
	mapG(a,b) = Rnd(225)
	mapB(a,b) = Rnd(225)
Next
Next
While Not KeyHit(1)
mx = MouseX()/20 :my = MouseY()/20
mxx =  r2*(Cos(mx*20)*Sin(my*20))
myy= r2*(Cos(my*20))  ;
Cls 
WaitTimer(time)	
For b=1 To tt ;Step 0.5
For a = 1 To tt ;Step 0.5
Color mapR(a,b) , mapG(a,b) ,mapB(a,b)
Rect a*20,b*20,20,20,1
Rect mapX(a,b)+550-10,mapY(a,b)+200-10  , 20,20 
;Plot mapX(a,b)+550,mapY(a,b)+200
Next
Next
Color 255,0,0
Rect mx*20,my*20,20,20,0
Rect mxx+550-10,myy+200-10,20,20,0
Color 255,255,255

Flip 
Wend
FreeTimer timer 
End 

Function SphireView#(x1,y1)
x= r2*(Cos(x1)*Sin(y1)) 
y= r2*(Cos(y1))   ;(Sin(x1)-


End Function


javascript так javascript ...
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 20.08.2015, 17:25   #22
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

После продолжительного затишья ...
код шарообразной сетки .
(пока не кликабельно )
Graphics 800,600,32,2
SetBuffer BackBuffer()

num = 10


r#=242
n# = 4*num
a# = 4.0
r2=90

While Not KeyHit(1)
Cls 
If KeyDown(200) r = r +1
If  KeyDown(208) r = r -1 
If  KeyDown(203) a = a +.1
If a >= 0.1 And KeyDown(205) a = a -.1 

For y = -num To num
For x = -num To num
	a1# = 180/(num*a)*x 
	a2# = 180/(num*a)*y
		vx# = Cos(a1-r2)*Cos(a2)  ;*r
		vy# = Cos(a1)*Sin(a2)  ;*r
	Plot 400+ (x)+(vx)*r, 300+(y)+vy*r
	Text 400+ (x)+(vx)*r, 300+(y)+vy*r ,(x*y)
Next 
Next 

Text 20,20,"angle =  "+a+"   Radius =  "+r

Flip 
Wend
End
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 20.08.2015, 17:30   #23
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Ну и в нагрузку облако тегов с определением по ближней полусфере.
time = CreateTimer(60)
Dim CosA#(3600)
Dim SinA#(3600)

For i# = 0 To 3600 Step 0.1
CosA(i)= Cos(i)
SinA(i)= Sin(i)
Next 

Graphics 800,600,32,2
SetBuffer BackBuffer()

numpnt=200
radius =200

Dim x#(numpnt) ,y#(numpnt) ,z#(numpnt) ,name$(numpnt)

c# = 0 : a# = 0 : b# =0 : q#=1 
p# = numpnt * Pi
	For n=1 To numpnt
		f#=ACos(-1+ (n* Pi) / numpnt*q)
		t# = Sqr(p)  *f
		
		x(n) = (radius * Sin(f) * Cos(t)); 
		y(n) = (radius * Sin(f) * Sin(t));
		z(n) = (radius * Cos(f));				
		name(n) = "target_"+Str(n) 		
	Next
While Not KeyHit(1)
Cls 
mx# =MouseX() : my#= MouseY()	

WaitTimer(time)	
	For n=1To numpnt	
	sa#=Sin(a):ca#=Cos(a):sb#=Sin(b):cb#=Cos(b):sc#=Sin(c): cc#=Cos(c)

	xx# = x(n)*cb*cc - y(n)*cb*sc+ z(n)*sb;
	yy# = x(n)*(cc*sa*sb+ca*sc)+y(n)*(ca*cc-sa*sb*sc)- z(n)*(cb*sa);
	zz# =-x(n)*(ca*cc*sb+sa*sc)+y(n)*(cc*sa+ca*sb*sc)+ z(n)*(ca*cb);

	vv = Int(zz/3)

	Color 128+vv,128+vv,128+vv
	If RectsOverlap ((xx+400),(yy+300),StringWidth(name(n) ),StringHeight(name(n) )  ,(mx),(my),1,1) And zz>0
	 Color 0,0,255
	Rect 	400+ xx-4 , 300+ yy ,50,15 ,0
	EndIf 
		Text 400+ xx , 300+ yy, name(n) 
			
		
	
	Next
	

	If b=360 b=0
	b=b+1
	c=b*0.1
Flip 
Wend
FreeTimer(time)
End
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 20.08.2015, 18:13   #24
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: 2d сетка

А можно скрины? Думаю тут мало у кого блиц остался на компах..
(Offline)
 
Ответить с цитированием
Старый 20.08.2015, 19:38   #25
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,533
Написано 1,987 полезных сообщений
(для 4,745 пользователей)
Ответ: 2d сетка

(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
Gector (25.08.2015), KCEPOKC (23.08.2015), St_AnGer (21.08.2015)
Старый 30.08.2015, 05:16   #26
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

Шарообразная сетка с выбором ячейки (при необходимости допилить )
код:
;


Graphics 800,600,32,2
SetBuffer BackBuffer()

num = 10


r#=242
n# = 4*num
a# = 4.0
r2=90

While Not KeyHit(1)
Cls 
mx# =MouseX() : my#= MouseY()	
If KeyDown(200) r = r +1
If  KeyDown(208) r = r -1 
If  KeyDown(203) a = a +.1
If a >= 0.1 And KeyDown(205) a = a -.1 

For y = -num To num
For x = -num To num
	a1# = 180/(num*a)*x 
	a2# = 180/(num*a)*y
		vx# = Cos(a1-r2)*Cos(a2)  ;*r
		vy# = Cos(a1)*Sin(a2)  ;*r
		px# = 400+ (x)+(vx)*r
		py# = 300+(y)+vy*r
	Plot px, py
	Text px, py ,(x*y)
	
	If RectsOverlap ((px+2),(py),15,10  ,(mx),(my),1,1) 
		Rect 	px-4 , py ,20,10 ,0
	EndIf 
Next 
Next 

Text 20,20,"angle =  "+a+"   Radius =  "+r

Flip 
Wend
End
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 01.09.2015, 12:47   #27
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

использование безье кривых 3 порядка для создания сетки
( несколько коряво написан код ) контрольные точки двигать мышью ... автовыбор точки по наведению , а потом кликать , кликать и кликать . . .
сам код :

Const n = 7
time = CreateTimer(60)

Global px#[7],py#[7]

Graphics 800,600,32,2
SetBuffer BackBuffer()
px[0] = 100 : py[0] = 100
px[1 ]= 100 : py[1] = 50
px[2] = 200 : py[2] = 50
px[3 ]= 200 : py[3] = 100

px[4] = 300 : py[4] = 300
px[5 ]= 100 : py[5] = 150
px[6 ]= 400 : py[6] = 150
px[7 ]= 400 : py[7] = 300

b# = 1.0/300 
b2# = 1.0/300

While Not KeyHit(1)
Cls 
mx = MouseX() : my=MouseY()
WaitTimer(time)
Color 255,5,5
For p = 0 To 7

If Dist(px[p] ,py[p],mx,my)<15
	Rect px[p]- 4,py[p]-4,8,8,0
	ppp= p
EndIf
	If MouseDown(1) 
	px[ppp] = mx 
	py[ppp] = my
	Oval mx-10,my-10, 20,20,0
	EndIf

Next
t# = b

buff = BackBuffer()
LockBuffer buff
While t <1.01 
	t2# = b2
	qx1#= Bezie3Q( Px[0],Px[1],Px[2] ,Px[3],t)
	qy1#=Bezie3Q (Py[0],Py[1],Py[2] ,Py[3],t)		

	While t2 <1.01 
	qx2#= Bezie3Q( Px[4],Px[5],Px[6] ,Px[7],t)
	qy2#=Bezie3Q (Py[4],Py[5],Py[6] ,Py[7],t)
	
	x# = BezeQ(qx1,qx2,t2 ) 
	y# = BezeQ(qy1,qy2,t2 ) 
		
	WritePixel x+1,y,$333333 ,buff 
	WritePixel x,y,$cccccc ,buff 
	WritePixel x,y+1,$ccccff,buff 
	
	WritePixel qx2,qy2,$ff0000,buff 
	WritePixel qx1,qy1,$ff0000,buff 
	t2 = t2 + b2
	Wend
	
	t = t + b
Wend
UnlockBuffer buff
For p = 0 To 7
	Rect  px[p]- 2,py[p]-2,4,4,1
Next
Color  128,228,228
Line px[0] ,py[0] ,px[1 ],py[1 ]
Line px[3] ,py[3] ,px[2] ,py[2] 
Line px[4] ,py[4] ,px[5] ,py[5 ]
Line px[6] ,py[6] ,px[7] ,py[7 ]

Text 20,20,"Point selct N -  "+ppp
Flip 
Wend
FreeTimer time 
End 



Function Dist#( X1#, Y1#, X2#, Y2# )
	Return (( (X1 - X2)*(X1 - X2) + (Y1 - Y2)*(Y1 - Y2) )^0.5)
End Function

Function Bezie3Q#(P0#,P1#,P2#,P3#,Tt# )
	Return ( (1.0-Tt)^3*P0 + 3*(1.0-Tt)^2*Tt*P1 +3*(1.0-Tt)*Tt^2*P2 + Tt^3*P3 )
End Function

Function BezeQ#(pp0#,pp1#,tt# ) ; pp0 -> x or y or z ... | pp1  -> x,y,z ... next or end point 
	Return ( (1.0-tt)*pp0+tt*pp1)
End Function
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 01.09.2015, 13:29   #28
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: 2d сетка

Вот бы эти демки на js'е писал, в codepen (например).
И в нете выкладывал, на twitter'е (например).

Их бы запустили не 2-3 человека, а сотни или тысячи, полюбовались, и кто-то чему-то научился бы.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (01.09.2015)
Старый 01.09.2015, 13:46   #29
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

каюсь до JS руки не доходят ,а тут на блице привычнее
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 01.09.2015, 13:59   #30
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,022
Написано 1,157 полезных сообщений
(для 2,779 пользователей)
Ответ: 2d сетка

Сообщение от polopok Посмотреть сообщение
каюсь до JS руки не доходят ,а тут на блице привычнее
Но ведь мало кто может посмотреть результат работы твоих алгоритмов... Блиц то мало у кого остался скорее всего (даже у меня он где то далеко далеко в глубинах старого винта валяется, и, запустить его нету возможностей). Остаётся только рисовать в голове работу алгоритма. Прикладывай хотя бы скриншоты, а лучше всё таки переходи на распространённые нынче вещи
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (01.09.2015)
Ответ


Опции темы

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

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


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


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