![]() |
коллизии в дерект плей
хелп почему неработает колизия ?
код: Const GRAVITY#=-3 Const Typeplayer = 1, TypeWall = 2 ;разрешение;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Graphics3D 800,600,32 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; SetBuffer BackBuffer() terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D") EntityType terrain,TypeWall svet=CreateLight () PositionEntity svet,0,500,0 Global camera,campitch#,camyaw#,mvx#,mvy#,mvz# Global bot sound=LoadSound ("E:\AB8A~1\1570~1\-9955~1\Data\mick\mw_title.mov") PlaySound sound1 Global player=CreateSphere() PositionEntity player,0,400,0 TurnEntity player,0,0,0 EntityRadius player, 20 EntityType player, TypePlayer cam=CreateCamera(player) PositionEntity cam, 0,5,-20 EntityRadius cam, 10 CameraClsColor Cam,10,10,50 CameraRange cam,1,250000 Collisions Typeplayer, TypeWall, 2, 3 While Not KeyHit(1) mxspd# =MouseXSpeed()*0.2 myspd#=MouseYSpeed()*0.2 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 campitch=campitch+myspd If campitch<-180 Then campitch=-180 If campitch>180 Then campitch=180 If MouseDown (2)Then RotateEntity cam,campitch,EntityYaw(cam)-mxspd,0 If KeyDown(17) MoveEntity player, 0, 0, 15 If KeyDown(31) MoveEntity player, 0, 0, -15 If KeyDown(32) TurnEntity player, 0,-2, 0 If KeyDown(30) TurnEntity player, 0, 2, 0 TranslateEntity player,0,gravity#,0 If KeyHit (57) MoveEntity player,x,y+100,z ;ии бота:::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::: ;::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: RenderWorld UpdateWorld Text 10, 10, "Info: "+CName Flip Wend End |
Ответ: коллизии в дерект плей
Цитата:
во первых, сначала ставь UpdateWorld, потом RenderWorld. больше ошибок не нашел, скинь пример с медией - будет время посмотрю, или кто нить другой посмотрит. |
Type Player
Field name$,id,ent End Type Global cam Global myent Global myid Global myname$ Include "E:\AB8A~1\1570~1\-9955~1\Data\script\26C9~1.TXT" SetBuffer BackBuffer() Const Typeplayer = 1, TypeWall = 2 terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D") EntityType terrain,TypeWall HostNetGame("World Arena") p.Player=New Player p\name=Input("Enter your name:") p\id=CreateNetPlayer(p\name) p\ent=CreateCube() myname=p\name myid=p\id myent=p\ent EntityRadius myent, 20 EntityType myent, TypePlayer cam=CreateCamera(myent) PositionEntity cam, 0,5,-20 EntityRadius cam, 10 CameraClsColor Cam,10,10,50 CameraRange cam,1,250000 Collisions Typeplayer, TypeWall, 2, 3 While Not KeyHit(1) UpdatePlayer() UpdateNetwork() RenderWorld Flip Wend Function UpdatePlayer() If KeyDown(17) MoveEntity myent,0,0,10 If KeyDown(31) MoveEntity myent,0,0,10 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 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)) dat$=Right(dat$,Len(dat$)-zp) yaw=Float(Left(dat$,Len(dat$))) PositionEntity ent,x,0,z RotateEntity ent,0,yaw,0 End Function нето вставил тут неработает ( |
Re: коллизии в дерект плей
Товарищи! Почему вы так бездумно копируете код из моей статьи? Он же не оптимизирован :rolleyes:
Да и копипаст - это зло ИМХО Насчет проблемы - причина та же, что сказал ХолиДел. И вот это еще смущает: Код:
Include "E:\AB8A~1\1570~1\-9955~1\Data\script\26C9~1.TXT"Код:
terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D") |
ну а всетаки почему ?
объясни пожалуйсто как и где (( |
Ответ: коллизии в дерект плей
Цитата:
http://www.forum.boolean.name/showthread.php?t=2355 здесь есть сетевой шутерок с сколлизиями (в исходниках разбирайся САМ) http://forum.boolean.name/showthread...ght=DirectPlay |
Re: Ответ: коллизии в дерект плей
Цитата:
http://blitzetcetera.org/index.php/О...м_Direc tPlay Сергей, ошибка там в том, что ты перед RenderWorld забыл поставить UpdateWorld. Та же ошибка и в первом примере была, о чем сообщил ХолиДел :) |
Ответ: коллизии в дерект плей
Tadeus, ну да. а в твоей откуда? ;)
как то загадачно использовние myid, myent. я первый начал ето использовать )) , также как кстати и FindPlayer, и Pack, UnPack message. кстати, интересная система запаковки, распаковки сообщений. респект! |
Цитата:
Ха-ха, товарисч ХолиДел. Вот они, ваши функции: http://www.blitzbasic.com/Community/...hp?topic=62491 ;) |
Ответ: коллизии в дерект плей
Цитата:
|
Re: коллизии в дерект плей
люди и еще хелп ааааааа как добавить сюда штоб гравитация действовала не тока на меня и на сетевого игрока ?а сейчас она действует тока на меня а на сетевого нет
Type Player Field name$,id,ent,GRAVITY# End Type Global cam Global myent Global myid Global myname$ Global GRAVITY#=-3 Include "E:\AB8A~1\1570~1\-9955~1\Data\script\26C9~1.TXT" SetBuffer BackBuffer() Const Typeplayer = 1, TypeWall = 2 terrain=LoadMesh ("E:\AB8A~1\1570~1\-9955~1\7056~1\DATAFA~1\maps\3ADA~1.B3D") EntityType terrain,TypeWall HostNetGame("World Arena") p.Player=New Player p\name=Input("Enter your name:") p\id=CreateNetPlayer(p\name) p\ent=CreateCube() myname=p\name myid=p\id myent=p\ent EntityRadius myent, 20 EntityType myent, TypePlayer cam=CreateCamera(myent) PositionEntity cam, 0,5,-20 EntityRadius cam, 10 CameraClsColor Cam,10,10,50 CameraRange cam,1,250000 Collisions Typeplayer, TypeWall, 2, 3 While Not KeyHit(1) UpdatePlayer() UpdateNetwork() UpdateWorld RenderWorld Flip Wend Function UpdatePlayer() If KeyDown(17) MoveEntity myent,0,0,10 If KeyDown(31) MoveEntity myent,0,0,-10 If KeyDown(30) TurnEntity myent,0,1,0 If KeyDown(32) TurnEntity myent,0,-1,0 TranslateEntity myent,0,gravity#,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 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)) dat$=Right(dat$,Len(dat$)-zp) yaw=Float(Left(dat$,Len(dat$))) PositionEntity ent,x,0,z RotateEntity ent,0,yaw,0 End Function |
Re: коллизии в дерект плей
Код:
For p.Player=Each Player |
Ответ: коллизии в дерект плей
Tadeus, неа, пиши сетевой шутер!
Серег, пиши также обновление координаты Y. Код:
Function PackMsg$(ent) |
О как
Цитата:
|
Re: коллизии в дерект плей
ок спасибо ша подкмаю
|
| Часовой пояс GMT +4, время: 16:49. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot