[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Колизии и мешИ в онлайн игре (Я тут рылся в инете и нашел скрипт онлайн игры в blitz)
Колизии и мешИ в онлайн игре
zoro193Дата: Среда, 08.04.2009, 16:37 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
NetGame=StartNetGame ()

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

Global cam
Global myent
Global myid
Global myname$

Type Player
Field name$,id,ent
End Type
Light=CreateLight()
terrain=CreatePlane()
PositionEntity terrain,0,0,-1
tex=LoadTexture( "lmap_256.bmp" )
EntityTexture terrain,tex,0,0

cam=CreateCamera (myid)
PositionEntity cam,0,10,-5

p.Player=New Player
p\id=CreateNetPlayer (p\name)
p\ent=CreateCube()
tex2=LoadTexture( "tex.bmp" )
EntityTexture p\ent,tex2,0,0
myname=p\name
myid=p\id
myent=p\ent

Function UpdatePlayer()
If KeyDown(17) MoveEntity myent,0,0,.1
If KeyDown(31) MoveEntity myent,0,0,-.1
If KeyDown(30) TurnEntity myent,0,1,0
If KeyDown(32) TurnEntity myent,0,-1,0
SendNetMsg 2,PackMsg$(myent),myid,0
End Function

Function UpdateNetwork()
While RecvNetMsg()
Select NetMsgType()
Case 100
p.Player=New Player
p\id=NetMsgFrom()
p\name=NetPlayerName(p\id)
p\ent=CreateCube()
Case 101
p.Player=FindPlayer(NetMsgFrom())
FreeEntity p\ent
Delete p
Case 2
p.Player=FindPlayer(NetMsgFrom())
UnpackMsg(p\ent,NetMsgData$())
End Select
Wend
End Function

EntityType p\ent,2
EntityType myent,2
Collisions 2,2,2,2

Function FindPlayer.Player( id )
For p.Player=Each Player
If p\id=id Then Return p
Next
End Function

Function PackMsg$(ent)
Return EntityX(ent)+"|"+EntityZ(ent)+"|"+EntityYaw(ent)
End Function

Function UnpackMsg(ent,dat$)
xp=Instr(dat$,"|")
x=Float(Left(dat$,xp))
dat$=Right(dat$,Len(dat$)-xp)
zp=Instr(dat$,"|")
z=Float(Left(dat$,zp))
d at$=Right(dat$,Len(dat$)-zp)
yaw=Float(Left(dat$,Len(dat$)))
PositionEntity ent,x,0,z
RotateEntity ent,0,yaw,0
End Function

While Not KeyHit (1)
updatePlayer()
updateNetwork()
UpdateWorld()
RenderWorld
Flip
Wend
На первый взгляд все просто ,но меши не работают и колизии тоже(((

 
ParisHiltonДата: Среда, 08.04.2009, 17:14 | Сообщение # 2
прогер
Группа: Пользователи
Сообщений: 197
Награды: 2
Репутация: 5
Статус: Offline
Что ты подразумеваешь под словами "меши не работают и колизии тоже"
Напиши подробнее если хочешь, чтобы тебе помогли

Я вижу только куб который двигается по оси
TCP работает успешно - данные передаются и обрабатываются вторым игроком


Мы ищем предмет цели для того чтобы найти результаты его следствия
 
zoro193Дата: Четверг, 09.04.2009, 16:12 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
С моделями разобрался! Но колизии не работают если добавить что то вроде этого:
p\ent=CreateCube()
EntityType p\ent, T_BOX
Const T_BOX=1,T_BOX=2
Collisions T_BOX, T_BOX,2,2

Добавлено (09.04.2009, 16:12)
---------------------------------------------
А и еще как анимировать модели в формате .X?

Сообщение отредактировал zoro193 - Четверг, 09.04.2009, 16:10
 
DarkFoxДата: Четверг, 29.10.2009, 17:52 | Сообщение # 4
ламер
Группа: Пользователи
Сообщений: 47
Награды: 0
Репутация: 1
Статус: Offline
У мя он ваше выдает ощибку на:
Code
Function UnpackMsg(ent,dat$)
xp=Instr(dat$,"|")
x=Float(Left(dat$,xp))
dat$=Right(dat$,Len(dat$)-xp)
zp=Instr(dat$,"|")
z=Float(Left(dat$,zp))
d  at$=Right(dat$,Len(dat$)-zp)     <-строка с ошибкой
yaw=Float(Left(dat$,Len(dat$)))
PositionEntity ent,x,0,z
RotateEntity ent,0,yaw,0
End Function

P.S. Не работал с сеткой


"Стрельбу по движущимся мишеням, производить только с разрешения администрации
В случае попадания бое припаса в тело, обращаться к богу!!!"
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Колизии и мешИ в онлайн игре (Я тут рылся в инете и нашел скрипт онлайн игры в blitz)
  • Страница 1 из 1
  • 1
Поиск: