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

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

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

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

Ответ
 
Опции темы
Старый 21.09.2009, 00:49   #16
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Попутно вспомнил что для игрока нужно исползовать капсулу. Вот за 20 минут сделал небольшой примерчик по поводу этой проблемы (воспользовался небольшим участком кода из примера от товарища cahekp из этой темы) Не вините за корявость, это делалось на скорую руку, да и я далеко не хороший программист на BB.


Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Wireframe 1

cam=CreateCamera()
CameraRange cam,.1,100
PositionEntity cam,0,5,-12

lit1=CreateLight()

pxCreateWorld(0,"")
pxSetGravity(0,-9.8,0)

pl_b=pxBodyCreateCube(2,.1,2,0)
pxBodySetPosition pl_b,0,1,0
pl=CreateCube()
ScaleEntity pl,2,.01,2
pxBodySetEntity pl,pl_b
pl2_b=pxBodyCreateCube(5,.1,5,0)
pl2=CreateCube()
ScaleEntity pl2,5,.01,5
pxBodySetEntity pl2,pl2_b



Global char%
Global mesh%
Global naklon_pitch#
Global naklon_roll#

char=pxBodyCreateCapsule(1.5,.5,80)
pxBodySetPosition char,0,3,0
pxBodySetRotation char,0,0,0
mesh=CreateCylinder(8)
ScaleEntity mesh, .5, 1.5, .5



force#=800

While Not KeyHit(1)
	UpdateWorld()
	RenderWorld()
	
		pxBodySetEntity mesh, char
		
		
		If KeyDown(17)
			pxBodyAddLocalForce(char,0,0,(vz#-pxBodyGetLocalLinearSpeedZ(char))*force#,0)
			vz#=1
		Else If KeyDown(31)
			pxBodyAddLocalForce(char,0,0,-(vz#+pxBodyGetLocalLinearSpeedZ(char))*force#,0)
			vz#=1
		Else
			pxBodyAddLocalForce(char,0,0,-pxBodyGetLocalLinearSpeedZ(char)*force#,0)
		End If
	
		If KeyDown(30)
			pxBodyAddLocalForce(char,-(vx#+pxBodyGetLocalLinearSpeedX(char))*force#,0,0,0)
			vx#=1
		Else If KeyDown(32)
			pxBodyAddLocalForce(char,(vx#-pxBodyGetLocalLinearSpeedX(char))*force#,0,0,0)
			vx#=1
		Else
			pxBodyAddLocalForce(char,-pxBodyGetLocalLinearSpeedX(char)*force#,0,0,0)
		End If


		naklon_pitch=pxBodyGetRotationPitch(char)
		naklon_roll=pxBodyGetRotationRoll(char)
		
		If naklon_pitch>0 Then 
			pxBodySetRotation char,-naklon_pitch,-mx,0
			pxBodySetRotation char,0,-mx,0
		Else If naklon_pitch<0 Then 
			pxBodySetRotation char,Abs(naklon_pitch),-mx,0
			pxBodySetRotation char,0,-mx,0
		End If
				
		If naklon_roll>0 Then 
			pxBodySetRotation char,0,-mx,-naklon_roll
			pxBodySetRotation char,0,-mx,0
		Else If naklon_roll<0 Then 
			pxBodySetRotation char,0,-mx,Abs(naklon_roll)
			pxBodySetRotation char,0,-mx,0
		End If
	
		mx=mx+MouseXSpeed()*.2
		MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
		

		pxRenderPhysic(30,0)
		
	Flip
Wend
End
W,S,A,D и мышь - управление капсулой (не смотрите что меш - цилиндр, лень было делать капсулу )

Рад, если чем то помог тебе, TxN

З.Ы.: хочу тебя поблагодарить, за то, что заставил шевелиться мой мозг Если бы не твоя тема, я так бы и не решил проблему с капсулой Так и ждал бы нового урока от АВТОМАТа

Последний раз редактировалось St.AnGer, 21.09.2009 в 11:09. Причина: Что то говорил про капсулу, а выложил с цилиндром... Спать хотелось, запутался :) TxN, я исправил одну строчечку, если воспользовался моим примером - исправь её у себя.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TxN (21.09.2009)
Старый 21.09.2009, 19:00   #17
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Помогите мну еще раз)
я долго экспериментировал с функциями перемещения, и наконец собрал ту, которая мне более менее нравится ( физический объект не управляет движением игрока, а только мешает пропам проходить сквозь него. мож это конечно глючно, но пока работает)

И в результате с камерой случилась такая странность:
Она стала искажать то,что видит, вытягивать объекты, текстуры в разные стороны. Шары выглядят сплющенными, кубы трапецевидными, и.т.д. я хз, что я сделал, пока корень проблемы не нашел)
(Offline)
 
Ответить с цитированием
Старый 21.09.2009, 20:26   #18
St.AnGer
Нуждающийся
 
Регистрация: 02.09.2007
Сообщений: 50
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Вопросы очередного новичка

Первым в голову лезет мысль про команду CameraZoom... ты ей не пользовался случайно, TxN?
(Offline)
 
Ответить с цитированием
Старый 21.09.2009, 20:31   #19
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

неа, не пользовался, точно)
завтра попробую переписать функцию управления, мож что получится, но выглядит конечно странно, все предметы такие неправильные)
(Offline)
 
Ответить с цитированием
Старый 22.09.2009, 22:37   #20
3dr1aN
Нуждающийся
 
Аватар для 3dr1aN
 
Регистрация: 26.12.2008
Сообщений: 70
Написано 26 полезных сообщений
(для 46 пользователей)
Ответ: Вопросы очередного новичка

скейл камеры меняется с объектом-родителем.
__________________
http://forum.boolean.name/image.php?type=sigpic&userid=4031&dateline=1231466  391
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо 3dr1aN за это полезное сообщение:
St.AnGer (23.09.2009), TxN (23.09.2009)
Старый 23.09.2009, 15:19   #21
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

А вот за это гигантское спасибо! действительно, проблема была в скейле объекта-родителя!)
Большое спасибо)
(Offline)
 
Ответить с цитированием
Старый 14.10.2009, 17:59   #22
TxN
AnyKey`щик
 
Регистрация: 22.11.2007
Сообщений: 13
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Народ, есть такой тупой вопрос:
как перестать отрисовывать какое-нибудь изображение?
я знаю, можно просто очистить весь экран и отрисовать все заново, но нет ли способа попроще?
(Offline)
 
Ответить с цитированием
Старый 14.10.2009, 18:10   #23
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: Вопросы очередного новичка

Можно использовать переменную флаг, только очищать экран все равно придется.
(Offline)
 
Ответить с цитированием
Старый 21.10.2009, 18:39   #24
coolmen06
AnyKey`щик
 
Регистрация: 23.01.2009
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы очередного новичка

Здрасти, у меня есть наитупейший вопрос от чайника..
как сделать чтобы машина мялас от ударов
использую pxCreateMetalCloth, из примера с бочками, но у меня корпус машины движется в 2 раза быстрей колёс и вообще улетает кудата..

вот пример http://sunroze.ru/primer.rar

спасибо всем!!
(Offline)
 
Ответить с цитированием
Старый 29.10.2009, 23:08   #25
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы очередного новичка

Еще вопрос от новичка - как сделать свет из солнца в космосе? Я расположил точечный источник около солнца, но когда делаю размер солнца большой (> 30) все планеты пропадают....
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 30.10.2009, 00:18   #26
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Вопросы очередного новичка

я правильно понял ?
Миниатюры
Нажмите на изображение для увеличения
Название: untitled.png
Просмотров: 668
Размер:	10.0 Кб
ID:	8134  
(Offline)
 
Ответить с цитированием
Старый 30.10.2009, 00:26   #27
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы очередного новичка

Да, в общем правильно... Могу кинуть код для экспериментов.
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 30.10.2009, 00:58   #28
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Вопросы очередного новичка

да былоб здорово
(Offline)
 
Ответить с цитированием
Старый 30.10.2009, 01:33   #29
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы очередного новичка

Вот текст: управление wasd и стрелки , 1,2,3 - скорость полета...

SeedRnd MilliSecs()
Graphics3D 1024,768,32,1

SetBuffer BackBuffer()
lit=CreateLight(2)

 LightColor lit,255,200,50
LightRange lit,300000
Dim sp(99)
 
k=1
center=CreateSphere(32) ;---------это солнце!!!!!!!!!!!!!!!!!

EntityFX center,1
 EntityColor center,255,255,100
c=20;             -------------      размер солнца..........
ScaleEntity  center,c,c,c
PositionEntity center,0,0,100 
;EntityAlpha center,1


;tex=LoadTexture("Picture.bmp")
AmbientLight 0,0,0

 For i=0 To 99     ; Это планеты 

 sp(i)=CreateSphere(32,center)
sc#=Rnd(100,300)

 ScaleEntity sp(i),sc#,sc#,sc#
EntityColor sp(i),Rnd(0,200),Rnd(0,200),Rnd(0,200)
EntityShininess  sp(i), .2
 PositionEntity sp(i),Rnd(-20000,20000),Rnd(-2000,2000),Rnd(-20000,20000)
;EntityTexture sp(i),tex
Next
cam=CreateCamera()

PositionEntity cam,0,0,-40
CameraRange cam,0.1,1000000

 time=MilliSecs()
Repeat

;Print time2

 ;TurnEntity center,.0,.003,.0

 If KeyDown(2) k=1
 If KeyDown(3) k=30
 If KeyDown(4) k=1000


  If KeyDown(200) MoveEntity cam,0,0,1000/k

 If KeyDown(208) MoveEntity cam,0,0,-1000/k

 If KeyDown(203) TurnEntity cam,0,0,1

 If KeyDown(205) TurnEntity cam,0,0,-1


 If KeyDown(17) TurnEntity cam,-1,0,0

 If KeyDown(31) TurnEntity cam,1,0,0


 If KeyDown(30) TurnEntity cam,0,1,0

 If KeyDown(32) TurnEntity cam,0,-1,0

time2=MilliSecs()-time
time=time +time2

 UpdateWorld
 RenderWorld
Text 50,50,k
  Flip
Until KeyHit(1)

 FreeFont f

End
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 30.10.2009, 02:28   #30
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Вопросы очередного новичка

и правда пропадают, хз что делать ))
вот мой код с мега-полезными функциями !
Function mouselook(ent)
	mxspd#=MouseXSpeed()*Mousespeed 
	myspd#=MouseYSpeed()*Mousespeed 
	MoveMouse GraphicsWidth()/2,GraphicsHeight()/2	 
	campitch#=EntityPitch(ent)+myspd# 
	If campitch#<-89 Then campitch#=-89
	If campitch#>89 Then campitch#=89
	RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)
End Function

Function player_move(ent)
	If KeyDown(17) MoveEntity ent,0,0,player_speed
	If KeyDown(31) MoveEntity ent,0,0,-player_speed
	If KeyDown(30) MoveEntity ent,-player_speed,0,0 
	If KeyDown(32) MoveEntity ent,player_speed,0,0
End Function

Function create_planet()
planet=CreateSphere(32,sun)
size#=Rnd(100,300)
ScaleEntity planet,size#,size#,size#
EntityColor planet,Rnd(0,200),Rnd(0,200),Rnd(0,200)
EntityShininess  planet,.2
PositionEntity planet,Rnd(-20000,20000),Rnd(-2000,2000),Rnd(-20000,20000)
End Function


Global mousespeed#=0.5
Global player_speed=10

SeedRnd(MilliSecs())
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
AmbientLight 0,0,0


light=CreateLight(2)
LightColor light,255,200,50
LightRange light,99999

camera=CreateCamera()
CameraRange(camera,0.001,99999999999999)

Global sun=CreateSphere()
EntityFX sun,1
EntityColor sun,255,255,100
size=10
ScaleEntity  sun,size,size,size



For i=1 To 100
create_planet()
Next

CameraClsMode(camera,1,1)
CameraZoom(camera,1.4)
Repeat


mouselook(camera)
player_move(camera)












UpdateWorld()
RenderWorld()




Flip()
Until KeyHit(1)
End
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Я новичок! alcosholik Blitz3D 123 02.08.2014 22:55
Вопросы новичка в БМаксе ELIAS 2D-программирование 14 08.02.2010 10:43
Re: Я новичок! evel Болтовня 60 30.09.2007 11:23
Помогите новичку _maxim_ 3D-программирование 7 17.09.2006 15:48
Вопросы...помогите новичку Round 3D-программирование 3 10.09.2006 21:47


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


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