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

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

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

Ответ
 
Опции темы
Старый 19.01.2010, 22:09   #496
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,366
Написано 2,476 полезных сообщений
(для 6,864 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Чилды парсим рекурсией!
У чилдов бывают чилды!
Function ParseChilds(ent
    For 
i=1 To CountChildren(ent
        
Local child=GetChild(ent,i
        If 
child<>
            
If CountChildren(child)>0 Then ParseChilds(child
            ; 
Тут делаем чтото полезное 
            EntityAlpha
(child,.5
        EndIf 
    
Next 
End 
Function 
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 01:31   #497
shyrikkk
Нуждающийся
 
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений
(для 2 пользователей)
НАРОД помогите задолбался вспотел !!!

как астановить анимированный спрайт !!!???????
тоесть что б один раз проигрался до 30го кадра ???
Вложения
Тип файла: rar 1.rar (32.5 Кб, 454 просмотров)
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 06:52   #498
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Допиши строчку кода тут:

frame=MilliSecs()/50 Mod 30
if(frame > 29) frame = 29
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 20:28   #499
cancel
Оператор ЭВМ
 
Аватар для cancel
 
Регистрация: 26.06.2009
Сообщений: 31
Написано 10 полезных сообщений
(для 29 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Работаю тут потихонку (когда настроение) над свойм GTA2 и проблема человеками.

В GTA2 они просто ходят по своей дороги и когда уже им навстречу идет стена дома например, тогда они уже об этом знают и плавно переворачиваются.
Не доходя до стенки.

А у меня если с стеной или чем угодно "collision" тогда реско поворот на 360 градусов.

Вообще не реально, ходят как столбы.


Как сделать плавный поворот и предсказать что вот уже стенка или конец дороги идет и пора переворачивать??
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 20:38   #500
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Вэйпоинты... по-моему так было в ГТА 2
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 20:46   #501
cancel
Оператор ЭВМ
 
Аватар для cancel
 
Регистрация: 26.06.2009
Сообщений: 31
Написано 10 полезных сообщений
(для 29 пользователей)
Ответ: Вопрос-Ответ (для новичков)

В GTA2 каждый TILE или скажем BLOCK имеет свои "флаги": PAVEMENT, ROAD, FIELD, AIR.
Все это можно изменить в редакторе карт.

На FIELD людей и машин нет, на ROAD есть машины, нa PAVEMENT люди. Bообщем по этим "флaгам" игра знает что и где.

Для машин еще указатели напрявления
http://img682.imageshack.us/img682/9606/arrows.png
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 20:46   #502
Blender
Нуждающийся
 
Аватар для Blender
 
Регистрация: 16.01.2010
Сообщений: 68
Написано 4 полезных сообщений
(для 5 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от cancel Посмотреть сообщение
Работаю тут потихонку (когда настроение) над свойм GTA2 и проблема человеками.

В GTA2 они просто ходят по своей дороги и когда уже им навстречу идет стена дома например, тогда они уже об этом знают и плавно переворачиваются.
Не доходя до стенки.

А у меня если с стеной или чем угодно "collision" тогда реско поворот на 360 градусов.

Вообще не реально, ходят как столбы.


Как сделать плавный поворот и предсказать что вот уже стенка или конец дороги идет и пора переворачивать??
В примерах физикса есть пример :
вот посмотри может поможет
Graphics3D 640,480,32,2
SetBuffer BackBuffer()
SeedRnd MilliSecs ()

;Lights
light01=CreateLight()
PositionEntity light01,15,66,15

;Plane
plane=CreatePlane()
text01=LoadTexture("..\media\tile.jpg")
ScaleTexture Text01,2,2
EntityTexture plane,text01

;Camera
cam=CreateCamera()
PositionEntity cam,20,60,-40
RotateEntity cam,60,20,0

;PX
PxCreateWorld(1, "key")					
pxSetGravity(0,-10,0)				


;--------------Wall-----------
cu1=CreateCube();
ScaleEntity cu1,50,2,1
PositionEntity cu1,0,1,50
cu1_body = pxBodyCreateCube(50,2,1,0)
pxBodySetPosition (cu1_body,0,1,50)

cu2=CreateCube();
ScaleEntity cu2,50,2,1
PositionEntity cu2,0,1,-50
cu2_body = pxBodyCreateCube(50,2,1,0)
pxBodySetPosition (cu2_body,0,1,-50)

cu3=CreateCube();
ScaleEntity cu3,1,2,50
PositionEntity cu3,-50,1,0
cu3_body = pxBodyCreateCube(1,2,50,0)
pxBodySetPosition (cu3_body,-50,1,0)

cu4=CreateCube();
ScaleEntity cu4,1,2,50
PositionEntity cu4,50,1,0
cu4_body = pxBodyCreateCube(1,2,50,0)
pxBodySetPosition (cu4_body,50,1,0)

For i=0 To 30
	Create_Px_Cube()
Next

;-------------Trigger---------------
Create_Px_AICube()

;--------------- speed-----------
  ang_speed% = Rand(0,1)
  ang_speed = 1- 2*ang_speed


 ;-------------Main Loop-------
Repeat

If KeyHit(57) Create_Px_AICube()


time=MilliSecs ()
pxRenderPhysic(30,0)
Update_Px_Cube()
Update_Px_AICube()
pxUpdateTriggers()
New_time=MilliSecs ()-time


UpdateWorld()
RenderWorld()
   frames=frames+1  
   If MilliSecs()-render_time=>1000  fps1=frames : frames=0 : render_time=MilliSecs()
 Text 10,50,"FPS: "+fps1+"  dll time: "+New_time
 Text 10,10,"Space - Add Ai Cube"

Flip

Until KeyHit(1)
End

Type Px_Cube
	Field cube_body%
	Field cube_mesh%
	Field red#, green#, blue#
End Type

Type Px_AICube
	Field cube_body%, cube_mesh%
	Field trigger%, triger_mesh%
	Field ang_speed
End Type

 Function Create_Px_AICube()
   acu.Px_AICube = New Px_AICube

	acu\cube_mesh = CreateCube();
	ScaleEntity acu\cube_mesh,2,2,2
	acu\cube_body = pxBodyCreateCube(2,2,2,10)
	pxBodySetPosition (acu\cube_body,0,1,0)
	pxBodySetFrozenRotX(acu\cube_body, 1)
	pxBodySetFrozenRotZ(acu\cube_body, 1)
	pxBodySetRotation(acu\cube_body, 0, Rand(-180,180), 0)

	acu\triger_mesh = CreateCube(acu\cube_mesh)
	ScaleEntity acu\triger_mesh,0.7,0.7,3
	EntityColor acu\triger_mesh,0,200,0
	EntityAlpha acu\triger_mesh,0.5
	PositionEntity acu\triger_mesh,0,0,2.5
	acu\trigger = pxTriggerCreateCube(1.4,1.4,6)
	pxBodySetCollisionGroup(acu\trigger, 1)
	pxBodySetCollisionGroupFlag(1, 1, 0)

  acu\ang_speed% = Rand(0,1)
  acu\ang_speed = 1- 2*acu\ang_speed
 End Function

Function Update_Px_AICube()
	For acu.Px_AICube = Each Px_AICube
		pxBodySetEntity( acu\cube_mesh, acu\cube_body)
		pxTriggerSetPosition(acu\trigger, EntityX#(acu\triger_mesh,1), EntityY#(acu\triger_mesh,1), EntityZ#(acu\triger_mesh,1))
		pxTriggerSetRotation(acu\trigger, 0, EntityYaw#(acu\triger_mesh,1), 0)

		pxBodySetLocalLinearSpeed(acu\cube_body,0, 0, 4)
		If (pxTriggerGetBody(acu\trigger, 1))
			pxBodySetAngularSpeed(acu\cube_body,0, acu\ang_speed*1, 0)
			EntityColor acu\triger_mesh,0,0,200
		Else
 		 acu\ang_speed = Rand(0,1)
 		 acu\ang_speed = 1- 2*acu\ang_speed
 		 EntityColor acu\triger_mesh,0,200,0
		EndIf 
	Next
End Function



 Function Create_Px_Cube()
   ocu.Px_Cube = New Px_Cube

	y# = Rnd (1,3)
	x# = Rnd (1,3)
	z# = Rnd (1,3)
  ocu\cube_mesh=CreateCube ()
  ScaleMesh ocu\cube_mesh,x,y,z
  ocu\red = Rand(0,100)
  ocu\green = Rand(0,255)
  ocu\blue = Rand(0,255)
  EntityColor ocu\cube_mesh, ocu\red#, ocu\green#, ocu\blue#
  ocu\cube_body=PxBodyCreateCube(x,y,z, 10)

   pxBodySetPosition(ocu\cube_body,Rand(-45,45),30,Rand(-45,45))

 End Function

Function Update_Px_Cube()
	For ocu.Px_Cube = Each Px_Cube
		If pxTriggerGetBodyTrigger(ocu\cube_body)
			EntityColor ocu\cube_mesh,255,0,0
		Else
			EntityColor ocu\cube_mesh, ocu\red#, ocu\green#, ocu\blue#
		EndIf
          pxBodySetEntity(ocu\cube_mesh, ocu\cube_body)
	Next
End Function
__________________

-Я умею общаться с трудными детьми. Моя мама в подвале держала подпольный детский сад! (С) "Теория большого взрыва"
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 20:59   #503
cancel
Оператор ЭВМ
 
Аватар для cancel
 
Регистрация: 26.06.2009
Сообщений: 31
Написано 10 полезных сообщений
(для 29 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Спасибо Blender, именно то что нужно!

Хотя имеет баги
http://img64.imageshack.us/img64/722/buggyf.png

но это пока самая малая проблема.

А в каком физиксе именно?
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 21:01   #504
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от cancel Посмотреть сообщение
В GTA2 каждый TILE или скажем BLOCK имеет свои "флаги": PAVEMENT, ROAD, FIELD, AIR.
Все это можно изменить в редакторе карт.

На FIELD людей и машин нет, на ROAD есть машины, нa PAVEMENT люди. Bообщем по этим "флaгам" игра знает что и где.

Для машин еще указатели напрявления
http://img682.imageshack.us/img682/9606/arrows.png
Если все знаешь, то зачем спрашивать?
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 20.01.2010, 21:03   #505
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,743
Написано 5,461 полезных сообщений
(для 15,676 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Видимо, это происходит в случае, когда кубик повёрнут точно перпендикулярно стенке, и прога не может никак решить, поворачивать его влево или вправо.
Значит, тебе нужно додумать и обработать это условие.

А вообще в том примере не очень хороший способ обхода препятствий, жрущий. Имеет смысл только при непредсказуемом изменении геометрии уровня во время игры.
Если этого не планируется, то лучше задуматься над вейпойнтами
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Reks888 (20.01.2010)
Старый 20.01.2010, 21:05   #506
cancel
Оператор ЭВМ
 
Аватар для cancel
 
Регистрация: 26.06.2009
Сообщений: 31
Написано 10 полезных сообщений
(для 29 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Reks
Ну этого просто было мало. Не умею еще это использовать для себя.
Алгоритмика понимаете. Учится надо еще всему этому.


А код Blendera помог. Хоть это решено.
(Offline)
 
Ответить с цитированием
Старый 21.01.2010, 00:01   #507
KingMaks
Знающий
 
Аватар для KingMaks
 
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений
(для 95 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Такой вопрос:
Есть модель игрока, когда бежит анимация бега,когда прыгает
анимация прыжка и т.д. Все работает!

Но тут я начал делать анимацию бега с оружием, анимацию прыжка с оружием и т.д.

Можно ли привязать модель оружия к кости Игрока, тоесть
допустим к кости ладошки, чтоб оружие следовало за анимацией ладошки и игрок какбы держал его??
__________________
StimuL
Maks
(Offline)
 
Ответить с цитированием
Старый 21.01.2010, 00:20   #508
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Вопрос-Ответ (для новичков)

можна !!
- находиш ладошку (команда финдчилд)
- парентиш оружие (парентентити или ентитипарент непомню уже)
Вот и все !!
Если же ты хочеш что бы допустим при прижке с оружием проигровалась специфическая анимка ну тип там оружие в сторону отвел или типа того то нужно использовать блендинг анимаций !! На блице есть решения этого, хоть и не совсем суперовые но вполне работоспособные !!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
KingMaks (21.01.2010)
Старый 21.01.2010, 00:57   #509
shyrikkk
Нуждающийся
 
Регистрация: 11.12.2009
Сообщений: 77
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от Жека Посмотреть сообщение
Допиши строчку кода тут:

frame=MilliSecs()/50 Mod 30
if(frame > 29) frame = 29
неполучаеться !!! не выходит !!!! код у тебя не правельный !!!
(Offline)
 
Ответить с цитированием
Старый 21.01.2010, 07:31   #510
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопрос-Ответ (для новичков)

Сообщение от shyrikkk Посмотреть сообщение
неполучаеться !!! не выходит !!!! код у тебя не правельный !!!
1. Ты грузил текстуру в цикле - это косяк.
2. Использованная тобой привязка к миллисекундам будет показывать не с нулевого кадра, а неизвестно с какого.

Вот даю рабочий код, в котором разделил твою функцию на две, загрузка и обновление.
Добавил флаг анимации - надо ли анимировать. Повторный запуск анимации по нажатию на пробел.
Ну и глобальных переменных добавил.


Graphics3D 640,480
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
RotateEntity light,90,0,0
Global sprite=CreateSprite ()
PositionEntity sprite,0,0,5

Global anim_tex
Global onAnimate = True
Global timeStart
Global frame

trLoad()

While Not KeyDown( 1 )

If(KeyHit(57) > 0)
	onAnimate = True
	frame = 0
EndIf 

UpdateWorld 
trUpdate()
RenderWorld
Flip

Wend

End


Function trLoad()
	anim_tex = LoadAnimTexture( "b.jpg",1,128,128,0,30 )
	EntityBlend sprite ,3
	EntityTexture sprite,anim_tex,0
	timeStart = MilliSecs()
End Function


Function trUpdate()

	If(onAnimate = True)
		If(MilliSecs() - timeStart >= 50)
			EntityTexture sprite,anim_tex,frame
			frame = frame + 1
			If(frame=29) onAnimate = False			
			timeStart = MilliSecs()			
		EndIf 
	EndIf
End Function
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Жека за это полезное сообщение:
Fatalix3d (21.01.2010), shyrikkk (22.01.2010)
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста дайте ответ на несколько вопросов Kuzma 3D-программирование 8 06.10.2009 19:38
Предложение к теме "вопрос-ответ" jimon Наш форум 1 27.02.2009 19:26
Мой ответ Жеке! alcosholik Болтовня 5 19.11.2005 16:41


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


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