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

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

Вернуться   forum.boolean.name > Общие темы > Болтовня

Болтовня Разговоры на любые темы (думайте, о чем пишите)

Ответ
 
Опции темы
Старый 16.12.2005, 00:04   #61
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
тенк'с попробуем
(Offline)
 
Ответить с цитированием
Старый 17.12.2005, 05:04   #62
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
Скажите кто нить, каким образом организовать взаимодействие мышки на объект
(при наведении.... и т.д.)
(Offline)
 
Ответить с цитированием
Старый 17.12.2005, 13:52   #63
jimon
 
Сообщений: n/a
получаеш координаты мышки
myvar_x = MouseX()
myvar_y = MouseY()

ну и оперируеш
 
Ответить с цитированием
Старый 18.12.2005, 01:19   #64
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
Спасибо, но как раз до ентого я сама, а дальше че с координатами делать ? как или чем проверить попадание в объект ?
(Offline)
 
Ответить с цитированием
Старый 18.12.2005, 07:37   #65
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
млин фсё хотел уже пробовать игрушку креетить, вышел облом я не смог сделать поле 8х8 объемное ну вроде как шахм доска.....
(Offline)
 
Ответить с цитированием
Старый 18.12.2005, 12:42   #66
jimon
 
Сообщений: n/a
как мы преобразовываем квадрат 1*1 в то что нам надо ? множим стороны на k

тоесть реальные координаты на екране будут такие

ето координаты верхнего левого угла :
x_real_start = x_in_dim * k
y_real_start = y_in_dim * k

ето координаты нижнего правого угла :
x_real_end = (x_in_dim+1) * k
y_real_end = (y_in_dim+1) * k



если k будет к примеру 20 то получится что квадратики со стороной 20 будут

а как проверять ?
if mousex() > (x_in_dim * k) and mousex()<((x_in_dim+1)*k) and mousey()>(y_in_dim * k) and mousey()<((y_in_dim+1)*k) then
....
end if
главное смотреть чтобы x_in_dim и y_in_dim невышли за рамки массива, я лично непарился и делел массив больше

ps. у тебя постановка задачи неправильная, или мышление неправильное небойся, с опытом приходит
ps2. найди какой нибудь пример простенькой игрушки, и попытайся зделать чтонибудь наподобе нее, если неполучается - смотри как делали в игре
 
Ответить с цитированием
Старый 18.12.2005, 20:44   #67
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
Фсе окончательно запутался с етими координ.,
Какие ед изм в Blitz'e а то не пойму: конус одно, картинка вроде уже в пикселях, ни че не понимаю как их соединить ?
PS Спасибо за терпение...
(Offline)
 
Ответить с цитированием
Старый 18.12.2005, 23:05   #68
jimon
 
Сообщений: n/a
измерения в блице - mouse получается в пикселях
и все

поставь задачу толком, и скажи в чем проблемма... помогу
 
Ответить с цитированием
Старый 19.12.2005, 07:43   #69
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
попробую подготовить вопрос, а вообще чё получается за то и хватаюсь чёб не топтаться на одном месте, поетому и вопросы такие не связанные...
тенкс
(Offline)
 
Ответить с цитированием
Старый 31.12.2005, 03:25   #70
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
jimon слушай подскажи че-нить можно с етим кодом сделать,
а то мне совсем не нравятся такие проблемы в начале пути.
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
Global fntArial=LoadFont("Arial",22)
SetFont fntArial
Global cam_pivot=CreatePivot()
	PositionEntity cam_pivot,10,0,10
	cam=CreateCamera(cam_pivot);камера
 PositionEntity cam,-15,15,-30
	light=CreateLight();свет
 LightColor light,255,255,255
 RotateEntity light,90,0,0

Global sph=LoadTexture("star.jpg")	
;Dim pole(7,7)

	For ty=0 To 7
 For tx=0 To 7
 	sphere=CreateSphere(16)
 	EntityTexture sphere,sph
 	PositionEntity sphere,tx*3,0,ty*3
 Next 
	Next
	While Not KeyHit(1) 

 If KeyDown(200)=True	Then
 	p$="Вверх"
 	rot_c=rot_c+1
 EndIf
 If KeyDown(208)=True Then
 	p$="Вниз"
 	rot_c=rot_c-1
 EndIf
 If KeyDown(203)=True Then
 	p$="Влево"
 	yaw#=-3
 EndIf
 If KeyDown(205)=True Then
 	p$="Вправо"
 	yaw#=3
 EndIf
	TurnEntity cam_pivot,0,yaw#,0
 RotateEntity cam,rot_c,-20,0
 yaw#=0

	RenderWorld
; Text 10,51,"Box at 100,100 is RGB:" + ColorRed() + "," + ColorGreen() + "," + ColorBlue() + "!"
 Text 10,11,"Стрелка  " + p$
; Text 10,31,"index " + index
 Text 10,51,"FPS: "+MaxFPS + " FPS=" +FPS

	Flip()
 	FPS=FPS+1 	
 If mFPS<MilliSecs() Then
 	mFPS=MilliSecs()+1000
 	MaxFPS=FPS
 	FPS=0
 EndIf	
	Wend
End
заодно прикреплю файлик(там бб и картинка(спрайт от ракеты)
Так вот проблема в FPS , а точнее в их кол-ве 7шт
у меня P2-434Мгц 16Video,128ram
ну не правильно что при создании 64 сфер обтянутых шкуркой,
такой загруз должен быть(даже на моём железе)
наверно можно по другому, но как ?
посему прошу наставлений...

или Blitz простые вещи, тоже делает через не туда ?
(Offline)
 
Ответить с цитированием
Старый 31.12.2005, 12:54   #71
jimon
 
Сообщений: n/a
у тебя щетчик fps кривой до невозможности - и непашет
юзай мой

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

Global fntArial=LoadFont("Arial",22)
SetFont fntArial
Global cam_pivot=CreatePivot()
	PositionEntity cam_pivot,10,0,10
	cam=CreateCamera(cam_pivot);êàìåðà
 PositionEntity cam,-15,15,-30

	light=CreateLight();ñâåò
 LightColor light,255,255,255
 RotateEntity light,90,0,0

 	Global fps_buffer1%,fps_buffer2%,fps%

 	Function fps()
 	fps_buffer1%=fps_buffer1%+1:If MilliSecs()-fps_buffer2%>1000 Then:fps_buffer2%=MilliSecs():fps%=fps_buffer1%:fps_buffer1%=0:End If
 	End Function

Global sph=LoadTexture("star.jpg")	

 	sphere=CreateSphere()
; 	HideEntity sphere

	For ty=0 To 7
 For tx=0 To 7
 	sphere2=CopyEntity(sphere)
 	EntityTexture sphere,sph
 	PositionEntity sphere,tx*3,0,ty*3
 Next 
	Next

	While Not KeyHit(1)

	fps()

 If KeyDown(200)=True	Then
 	p$="Ââåðõ"
 	rot_c=rot_c+1
 EndIf
 If KeyDown(208)=True Then
 	p$="Âíèç"
 	rot_c=rot_c-1
 EndIf
 If KeyDown(203)=True Then
 	p$="Âëåâî"
 	yaw#=-3
 EndIf
 If KeyDown(205)=True Then
 	p$="Âïðàâî"
 	yaw#=3
 EndIf

	TurnEntity cam_pivot,0,yaw#,0
	RotateEntity cam,rot_c,-20,0

	yaw#=0

 UpdateWorld
 RenderWorld
 Text 10,11,"Ñòðåëêà  " + p$
 Text 10,51,"FPS: "+fps

	Flip 0

	Wend
End
сорри руский текст в коде затрется - думаю для тебя непроблема востановить ?

ps. у меня ~560 - 600 фпс
проблемма была в том что ты создавал каждый раз новую сферу, да притом такую большую (помойму 256 полигонов в каждой)

и flip 0 надо ставить
и разрешение екрана лутче ставить 800*600 и в оконом режиме
 
Ответить с цитированием
Старый 07.01.2006, 00:17   #72
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
такая проблемка при кликах на правую кнопку мыши мерцает екран
(т.е. как будто один кадр смещен - "кадры бегут")
код не много урезан для форума, целиком в архиве
...
	While MouseDown(2); вращение игрового поля
 *
 *xs=MouseXSpeed()
 *If *GraphicsWidth() -1 <= MouseX() Then;переход границ экрана
 *	MoveMouse GraphicsWidth()-MouseX(),MouseY()	
 *	Else If MouseX() =< 0 Then 
 *	MoveMouse GraphicsWidth() -1,MouseY()
 *End If 
 *If *GraphicsHeight() -1 <= MouseY() Then
 *	MoveMouse MouseX(),GraphicsHeight()-MouseY()
 *	Else If MouseY() <= 0 Then 
 *	MoveMouse MouseX(),GraphicsHeight()-1
 *End If *
 *rot_y=0
 *If xs<0 Then rot_y=rot_y+(2-xs/30)
 *If xs>0 Then rot_y=rot_y-(2+xs/30)
 *If xs<>0 Then *
 *	TurnEntity cam_pivot,0,rot_y,0
 *End If
 *fps()
 *UpdateWorld
 *RenderWorld
 *shinfo()
 *Flip 
	Wend
End Function 
....
и если подвигать мышкой, а затем нажать пр.кнопку то возможен поворот поля,
вроде обнуляю переменную(rot_y) только перед расчетами нового значения
в чем дело ?
еще - я использую функцию fps() и shinfo() в двух места ето коректно? ,
просто ето когда зажата кнопка мыши чеб вся инфа обновлялась, может я не грамотно распологаю код

PS кстати jimon насчет щетчика fps ты перебрал ето не мой(с форума)
во вторых показания примерно одинаковые (возможно на больших измерениях будет по другому у меня 25-30fps(434Мгц)после апгрейта проверю , так чё еще обсудим
объясни что дает flip 0
и моя проблема вроде (но 100% не говорю) была в большом количестве сегментов
(полигонов) сферы, flip и разрешение,режим екрана - больших скочков не давали
(Offline)
 
Ответить с цитированием
Старый 07.01.2006, 14:57   #73
jimon
 
Сообщений: n/a
обычно делают так :
Function povorot()

	zs#=MouseZSpeed ()	
	If MouseDown(3)=True Then zoom#=1
	If ZS=-1 Then zoom#=zoom#+0.1
	If ZS=1 Then zoom#=zoom#-0.1 
	If zoom#<0.5 Then zoom#=0.5
	If zoom#>1.5 Then zoom#=1.5
 CameraZoom cam,zoom#
 
	

	If MouseDown(2) Then; âðàùåíèå èãðîâîãî ïîëÿ
 
 xs=MouseXSpeed()

 rot_y=0
 If xs<0 Then rot_y=rot_y+(2-xs/30)
 If xs>0 Then rot_y=rot_y-(2+xs/30)
 If xs<>0 Then 
 	TurnEntity cam_pivot,0,rot_y,0
 End If
	
	End If

	MoveMouse 400,300

	fps()
	UpdateWorld
	RenderWorld
	shinfo()
	Flip 0

End Function
400,300 - ето расширение екрана поделить на два .. просто мне влом было писать graphicswidth()/2 и тд

flip 0 рисует кадр без вертикальной синхронизации
тоесть есть писать flip до количество кадров в секунду ограничится частотой обновления екрана (у меня 100 герц к примеру)
 
Ответить с цитированием
Старый 07.01.2006, 19:09   #74
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Писать надо: graphicswidth()*0.5
подробнее тут: http://community.boolean.name/index.php?showtopic=122
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 07.01.2006, 20:34   #75
Kain
ПроЭктировщик
 
Регистрация: 03.12.2005
Сообщений: 111
Написано 0 полезных сообщений
(для 0 пользователей)
impersonalis
Писать надо: graphicswidth()*0.5
подробнее тут: http://community.boolean.name/index.php?showtopic=122
между прочим ето я уже прочитал, и у меня не подтвердилось: / чуть-чуть выигрывало,
доберусь до оптимизации игры пообщаемся,ты бы лучше на письмо ответил
Если совсем не понятен вопрос в письме , то кратко будет так :
" Вы можете из_менять код форума ? "
или по теме прокоментировал ,потому как я не понял почему кадры прыгали то

jimon так и не понял чё делает етот ноль (у меня тоже 100 Гц 1024*768 17" )
я так понял ты ответил на "MouseDown(2)" -- помогло
помнишь спрашивал про то как определить объект с помощью мышки
так вот ты вроде тогда мне про 2D писал, а 3D -- EntityZ(X,Y) пойдет ?

PS impersonalis как ты нашел не документированые функции ? и есть ли ещё ?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ и SDK Blitz Evgenii C++ 8 06.01.2010 13:19
Blitz v1.66 !!! klopmaks Blitz3D 18 18.06.2007 15:21
Не Blitz ZanoZa Болтовня 23 30.10.2005 20:40


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


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