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

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

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

Ответ
 
Опции темы
Старый 11.01.2008, 11:42   #1
сергей
Нуждающийся
 
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
коллизии в дерект плей

хелп почему неработает колизия ?

код:

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
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 11:58   #2
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: коллизии в дерект плей

коллизии в дерект плей
при чем здесь "дерект плей" ?

во первых, сначала ставь
UpdateWorld, потом RenderWorld.

больше ошибок не нашел, скинь пример с медией - будет время посмотрю, или кто нить другой посмотрит.
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:01   #3
сергей
Нуждающийся
 
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
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

нето вставил тут неработает (

Последний раз редактировалось HolyDel, 11.01.2008 в 12:13.
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:04   #4
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: коллизии в дерект плей

Товарищи! Почему вы так бездумно копируете код из моей статьи? Он же не оптимизирован

Да и копипаст - это зло ИМХО

Насчет проблемы - причина та же, что сказал ХолиДел. И вот это еще смущает:

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")
ЗЫЖ. ДП - ЗЛО
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:06   #5
сергей
Нуждающийся
 
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
ну а всетаки почему ?

объясни пожалуйсто как и где ((

Последний раз редактировалось HolyDel, 11.01.2008 в 12:11.
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:11   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: коллизии в дерект плей

Товарищи! Почему вы так бездумно копируете код из моей статьи?
эй!
http://www.forum.boolean.name/showthread.php?t=2355

здесь есть сетевой шутерок с сколлизиями (в исходниках разбирайся САМ)
http://forum.boolean.name/showthread...ght=DirectPlay

Последний раз редактировалось HolyDel, 11.01.2008 в 12:16.
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:15   #7
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: Ответ: коллизии в дерект плей

Сообщение от HolyDel Посмотреть сообщение
Ты ошибсо. Таки из моей:
http://blitzetcetera.org/index.php/О...м_Direc tPlay

Сергей, ошибка там в том, что ты перед RenderWorld забыл поставить UpdateWorld. Та же ошибка и в первом примере была, о чем сообщил ХолиДел
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:20   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: коллизии в дерект плей

Tadeus, ну да. а в твоей откуда?
как то загадачно использовние myid, myent. я первый начал ето использовать )) , также как кстати и FindPlayer, и Pack, UnPack message.
кстати, интересная система запаковки, распаковки сообщений. респект!
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:45   #9
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Сообщение от HolyDel Посмотреть сообщение
Tadeus, ну да. а в твоей откуда?
как то загадачно использовние myid, myent. я первый начал ето использовать )) , также как кстати и FindPlayer, и Pack, UnPack message.
кстати, интересная система запаковки, распаковки сообщений. респект!
Myid я действительно увидел у тебя, до myent додумалсо сам. FindPlayer, и Pack, UnPack я нашел на каком-то буржуйском сайте, а потом увидел во флайере. ФайндПлейер пишется левой ногой, а я, кстати, так и не понял принцип пакования данных во флайере, поэтому сделал свое. На буржуйском сайте тоже было что-то непонятное

Ха-ха, товарисч ХолиДел. Вот они, ваши функции:
http://www.blitzbasic.com/Community/...hp?topic=62491
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:52   #10
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: коллизии в дерект плей

Ха-ха, товарисч ХолиДел. Вот они, ваши функции:
http://www.blitzbasic.com/Community/...hp?topic=62491
и правда )
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:53   #11
сергей
Нуждающийся
 
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
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
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:55   #12
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Re: коллизии в дерект плей

For p.Player=Each Player
TranslateEntity p\ent,0,gravity#,0
Next
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 12:57   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: коллизии в дерект плей

Tadeus, неа, пиши сетевой шутер!
Серег, пиши также обновление координаты Y.
Function PackMsg$(ent)
Return EntityX(ent)+"|"+EntityZ(ent)+"|"+EntityYaw(ent)+"|"+EntityY(ent)
End Function
как сделать распаковку догадайся сам, не подсказывайте ему (хотябы часок), пусть думает.
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 13:00   #14
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Восклицание О как

Сообщение от HolyDel
Tadeus, неа, пиши сетевой шутер!
Ты о чем?
(Offline)
 
Ответить с цитированием
Старый 11.01.2008, 13:03   #15
сергей
Нуждающийся
 
Регистрация: 14.10.2007
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Re: коллизии в дерект плей

ок спасибо ша подкмаю
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюк или не глюк? Вот в чем вопрос! Lion1971 Библиотеки 6 03.02.2009 18:03
Во сколько оценивается создание интерне& Nunan Болтовня 3 28.10.2008 14:33
Все статьи, уроки,дополнения, ошибки компl anton_obuhov Основной форум 3 14.09.2008 13:11
куплю исходник военной стратегии на blitz3d эд Blitz3D 15 18.02.2008 15:50
А вот и ещё тема по текстурированию ландшk CRASHER Создание текстур 4 16.01.2008 18:10


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


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