|
2D-программирование Вопросы, касающиеся двумерного программирования |
25.05.2014, 22:40
|
#16
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: 2d сетка
Сообщение от polopok
Думаю не стоит так переживать , тут главное формулы правильные вывести ,а там можно под любой язык или среду переписать.
Признаться пишу от безделия , а так хоть мозг не атрафируется и чтоб труды не пропали даром выкладываю сюда.
|
Дык тем более. JS на много ближе к любому другому языку, нежели блиц. JS знают на много больше людей, и у тебя напрямую будет в интернете что-то лежать, и гуглиться.
Труд твой тут в большинстве как раз и пропадает, те кому нужно - сами напишут, а те кто не может сам, будет искать на его языке что-то, или приблизительное. А на блице сейчас ничего не делают (про тех кто сидит в прошлом не говорю, "им не поможешь").
А вот польза от JS мелкой демки такого рода, где-то с заголовком и пару строками описания, гуглятся отлично и народу пригодится. Пользы больше, и тебе приятнее думаю было бы.
|
(Offline)
|
|
26.05.2014, 00:04
|
#17
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: 2d сетка
Мдаа... Ты трав . А то зациклился на блице ))) , самому смешно .
__________________
Мой проект здесь
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.05.2014, 00:10
|
#18
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: 2d сетка
Вопрос писать на java или на javascript
__________________
Мой проект здесь
|
(Offline)
|
|
26.05.2014, 00:13
|
#19
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.05.2014, 00:28
|
#20
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: 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)
|
|
26.05.2014, 00:33
|
#21
|
ПроЭктировщик
Регистрация: 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, 20:25
|
#22
|
ПроЭктировщик
Регистрация: 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, 20:30
|
#23
|
ПроЭктировщик
Регистрация: 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, 21:13
|
#24
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: 2d сетка
А можно скрины? Думаю тут мало у кого блиц остался на компах..
|
(Offline)
|
|
20.08.2015, 22:38
|
#25
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: 2d сетка
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
|
|
30.08.2015, 08:16
|
#26
|
ПроЭктировщик
Регистрация: 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, 15:47
|
#27
|
ПроЭктировщик
Регистрация: 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, 16:29
|
#28
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: 2d сетка
Вот бы эти демки на js'е писал, в codepen (например).
И в нете выкладывал, на twitter'е (например).
Их бы запустили не 2-3 человека, а сотни или тысячи, полюбовались, и кто-то чему-то научился бы.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.09.2015, 16:46
|
#29
|
ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: 2d сетка
каюсь до JS руки не доходят ,а тут на блице привычнее
__________________
Мой проект здесь
|
(Offline)
|
|
01.09.2015, 16:59
|
#30
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: 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)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:24.
|