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

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

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

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

Ответ
 
Опции темы
Старый 30.10.2007, 00:45   #16
jimon
 
Сообщений: n/a
Re: Прибить гвоздями, либо приварить?

любой баг надо начать с симуляции его на стрес-тестовой программе
именно она показывает где баг - за тестовой прогой или в тестовой проге
если баг появляется за тестовой прогой - обращайся к разработчику ПО
если в тестовой проге - это не баг, просто надо правильно писать

по скольку блиц уже скока лет существует, и ранее таких проблем
не замечалось .. то скорее виноват сам программист который не верит
в свои ошибки ...

ps. нужно только анализировать ...
 
Ответить с цитированием
Старый 30.10.2007, 02:30   #17
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

Вот специально копировал части кода из функций с которыми баг из поста 10.

Const TypeTehnika=1,TypeEarth=2,TypeNebo=3
 
k1 = LoadMesh("Data\object\ships\k1\k1.b3d")
ScaleEntity k1,0.1,0.1,0.1
PositionEntity k1,5,4,30
RotateEntity k1, 0, 90, 0
EntityRadius k1,3
EntityType k1,TypeTehnika

Planet1Plane = CreatePlane()
EntityType Planet1Plane,TypeEarth
EntityAlpha Planet1Plane,0.999
Planet1WoterTexture=LoadTexture("Data\textures\pesok.jpg") 
ScaleTexture Planet1WoterTexture,15,15
EntityTexture Planet1Plane,Planet1WoterTexture

Planet1Nebo = CreatePlane()
PositionEntity Planet1Nebo,0,3000,0
RotateEntity Planet1Nebo, 0, 0, 180
EntityAlpha Planet1Nebo,0.7
EntityType Planet1Nebo,TypeNebo
Planet1NeboTexture=LoadTexture("Data\textures\Planet1-Nebo.jpg") 
ScaleTexture Planet1NeboTexture,3000,3000
EntityTexture Planet1Nebo,Planet1NeboTexture
 
While Not KeyDown(1)
 
RenderWorld
 
Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3
Чё тут анализировать то?
почему:

Collisions TypeTehnika,TypeEarth,2,3

работает как

Collisions TypeTehnika,TypeEarth,2,1
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 04:59   #18
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Прибить гвоздями, либо приварить?

почему:

Collisions TypeTehnika,TypeEarth,2,3

работает как

Collisions TypeTehnika,TypeEarth,2,1
А где у тебя код, где бы объекты двигались ?
Ты поставил скользящую коллизию, а она работает на останов ?
Чудес не бывает, бывают кривые руки и недостаток мозгов (без обид, я сам тормоз)

Код управления движением объектов в студию.
А лучше тест с моделями (повтори так называемый "баг" с минимумом кода)
__________________
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 08:42   #19
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Прибить гвоздями, либо приварить?

Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3

вынеси из цикла.
это значит раз.
далее, вот ненадо к блицевским плейнам делать коллизию 2-ого типа (сфера к полигону), как эти самые плейны реализованы фиг знает, поетому ненадо.
или сделай EntityBox у ним, и коллизию тогда t1,t2,3,3
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 11:31   #20
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

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

Примечание:
Q - загрузить небо, землю, камеру, функцию управления корабля
(больше 1 раза не нажимайте! ато создадите клоны - земли, корабля, камеры и выключите управление)

управление кораблём:
W A S D UP DOWN LEFT RIGHT - 8 клавиш, так надо, как запустите осваивайтесь в управлении сразу всеми восмью.
Тут и мышкой можно, но не нужно )

Graphics3D 1024, 768, 32
SetBuffer BackBuffer()
HidePointer

Global mXSp#
Global mYSp#

Global speedk1#=0
Global k1
Global k1u#=0
Global Planet1Plane
Global Planet1Nebo

Global Red=100
Global Green=100
Global Blue=100

Const TypeTehnika=1,TypeEarth=2,TypeNebo=3

Function k1()
k1 = LoadMesh("Data\object\ships\k1\k1.b3d")
ScaleEntity k1,0.1,0.1,0.1
PositionEntity k1,5,4,30
RotateEntity k1, 0, 90, 0
EntityRadius k1,3
EntityType k1,TypeTehnika
End Function

Function Camerak1()
Camerak1 = CreateCamera(k1)
PositionEntity Camerak1,3,60,-320
RotateEntity Camerak1, 0, 0, 0
CameraRange Camerak1,1.0,1000000
CameraClsColor Camerak1,red,green,Blue
End Function

Function k1u()

UpDown#=0.3
Zkrenk1#=1
XYkrenk1#=1
TSpeed#=0.020

mXSp=MouseXSpeed()
mYSp=MouseYSpeed()

    TurnEntity k1,mYSp*TSpeed,0,0
    TurnEntity k1,0,-mXSp*TSpeed,0

    MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

    MoveEntity k1,0,0,+speedk1#

If KeyDown(30) Then TurnEntity k1,0,0,+Zkrenk1#

If KeyDown(32) Then TurnEntity k1,0,0,-Zkrenk1#

If KeyDown(200) Then TurnEntity k1,+XYkrenk1#,0,0

If KeyDown(208) Then TurnEntity k1,-XYkrenk1#,0,0

If KeyDown(203) Then TurnEntity k1,0,+XYkrenk1#,0

If KeyDown(205) Then TurnEntity k1,0,-XYkrenk1#,0

If KeyDown(42) Then
MoveEntity k1,0,+UpDown#,0
End If

If KeyDown(29) Then
MoveEntity k1,0,-UpDown#,0
End If

If KeyHit(17) Then 

speedk1#=speedk1#+0.5

End If

If KeyHit(31) Then 

speedk1#=speedk1#-0.5

End If

If speedk1#=2 Then

speedk1#=1.5

EndIf

If speedk1#=-0.5 Then

speedk1#=0

EndIf


End Function


Function Planet1World()
Planet1Plane = CreatePlane()
EntityType Planet1Plane,TypeEarth
EntityAlpha Planet1Plane,0.999
Planet1WoterTexture=LoadTexture("Data\textures\pesok.jpg") 
ScaleTexture Planet1WoterTexture,15,15
EntityTexture Planet1Plane,Planet1WoterTexture

Planet1Nebo = CreatePlane()
PositionEntity Planet1Nebo,0,3000,0
RotateEntity Planet1Nebo, 0, 0, 180
EntityAlpha Planet1Nebo,0.7
EntityType Planet1Nebo,TypeNebo
Planet1NeboTexture=LoadTexture("Data\textures\Planet1-Nebo.jpg") 
ScaleTexture Planet1NeboTexture,3000,3000
EntityTexture Planet1Nebo,Planet1NeboTexture
End Function


While Not KeyDown(1)

If KeyHit(16) Then
Planet1World()
k1()
Camerak1()
k1u#=1
End If

If k1u#=1 Then 
k1u()
End If

UpdateWorld

RenderWorld

Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3

Flip

Wend

End
P.S. Заметил, что застревает при полёте в определённую сторону,
т.е. если смотреть по воображаемому компосу:
при полёте на север застревает, при полёте на юг не застревает.

Добавил:
если у неба коллизию убрать, тоесть стереть строчку
Collisions TypeTehnika,TypeNebo,2,3
то баг с застряванием в земле пропадает.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 12:51   #21
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Re: Прибить гвоздями, либо приварить?

Коллизии со сферами прекрасно работают, 3 работает как 1 скорей всего потому, что... так и предусмотрено... какбы защита от слольжения, лично я никогда не использую 3, всегда 2.
Ну а с привязкой... если использовать EntityParent - это не значит, что объекты намертво прям привязаны. AddMesh тут правильно советуют.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 14:21   #22
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

Эддмеш эффекта не дал.

Как это предусмотрено? Это баг.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 15:05   #23
jimon
 
Сообщений: n/a
Re: Прибить гвоздями, либо приварить?

Graphics3D 800, 600, 32
SetBuffer BackBuffer()
HidePointer

Global mXSp#
Global mYSp#

Global speedk1#=0
Global k1
Global k1u#=0
Global Planet1Plane
Global Planet1Nebo

Global Red=100
Global Green=100
Global Blue=100

Const TypeTehnika=1,TypeEarth=2,TypeNebo=3

Function k1()
k1 = CreateCube()
ScaleEntity k1,0.1,0.1,0.1
PositionEntity k1,5,4,30
RotateEntity k1, 0, 90, 0
EntityRadius k1,3
EntityType k1,TypeTehnika
End Function

Function Camerak1()
Camerak1 = CreateCamera(k1)
PositionEntity Camerak1,3,60,-320
RotateEntity Camerak1, 0, 0, 0
CameraRange Camerak1,1.0,1000000
CameraClsColor Camerak1,red,green,Blue
End Function

Function k1u()

UpDown#=0.3
Zkrenk1#=1
XYkrenk1#=1
TSpeed#=0.020

mXSp=MouseXSpeed()
mYSp=MouseYSpeed()

    TurnEntity k1,mYSp*TSpeed,0,0
    TurnEntity k1,0,-mXSp*TSpeed,0

    MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

    MoveEntity k1,0,0,+speedk1#

If KeyDown(30) Then TurnEntity k1,0,0,+Zkrenk1#

If KeyDown(32) Then TurnEntity k1,0,0,-Zkrenk1#

If KeyDown(200) Then TurnEntity k1,+XYkrenk1#,0,0

If KeyDown(208) Then TurnEntity k1,-XYkrenk1#,0,0

If KeyDown(203) Then TurnEntity k1,0,+XYkrenk1#,0

If KeyDown(205) Then TurnEntity k1,0,-XYkrenk1#,0

If KeyDown(42) Then
MoveEntity k1,0,+UpDown#,0
End If

If KeyDown(29) Then
MoveEntity k1,0,-UpDown#,0
End If

If KeyHit(17) Then 

speedk1#=speedk1#+0.5

End If

If KeyHit(31) Then 

speedk1#=speedk1#-0.5

End If

If speedk1#=2 Then

speedk1#=1.5

EndIf

If speedk1#=-0.5 Then

speedk1#=0

EndIf


End Function


Function Planet1World()
Planet1Plane = CreatePlane()
EntityType Planet1Plane,TypeEarth
EntityAlpha Planet1Plane,0.999
Planet1WoterTexture=LoadTexture("1.jpg") 
ScaleTexture Planet1WoterTexture,15,15
EntityTexture Planet1Plane,Planet1WoterTexture

Planet1Nebo = CreatePlane()
PositionEntity Planet1Nebo,0,3000,0
RotateEntity Planet1Nebo, 0, 0, 180
EntityAlpha Planet1Nebo,0.7
EntityType Planet1Nebo,TypeNebo
Planet1NeboTexture=LoadTexture("2.jpg") 
ScaleTexture Planet1NeboTexture,3000,3000
EntityTexture Planet1Nebo,Planet1NeboTexture
End Function


While Not KeyDown(1)

If KeyHit(16) Then
Planet1World()
k1()
Camerak1()
k1u#=1
End If

If k1u#=1 Then 
k1u()
End If

UpdateWorld

RenderWorld
Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3


Flip

Wend

End
этот код у меня работает ... так что давай прекращай уже постить
месаги о том что все глючит кроме тебя, а то уже бесит
 
Ответить с цитированием
Старый 30.10.2007, 15:25   #24
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Прибить гвоздями, либо приварить?

далее, вот ненадо к блицевским плейнам делать коллизию 2-ого типа (сфера к полигону), как эти самые плейны реализованы фиг знает, поетому ненадо.
если создать CreatePlane () то получится всего 2 полигона, а если CreatePlane (16), то - 32 (или 16 ) !!
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 15:38   #25
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

Сообщение от jimon
Graphics3D 800, 600, 32
SetBuffer BackBuffer()
HidePointer

Global mXSp#
Global mYSp#

Global speedk1#=0
Global k1
Global k1u#=0
Global Planet1Plane
Global Planet1Nebo

Global Red=100
Global Green=100
Global Blue=100

Const TypeTehnika=1,TypeEarth=2,TypeNebo=3

Function k1()
k1 = CreateCube()
ScaleEntity k1,0.1,0.1,0.1
PositionEntity k1,5,4,30
RotateEntity k1, 0, 90, 0
EntityRadius k1,3
EntityType k1,TypeTehnika
End Function

Function Camerak1()
Camerak1 = CreateCamera(k1)
PositionEntity Camerak1,3,60,-320
RotateEntity Camerak1, 0, 0, 0
CameraRange Camerak1,1.0,1000000
CameraClsColor Camerak1,red,green,Blue
End Function

Function k1u()

UpDown#=0.3
Zkrenk1#=1
XYkrenk1#=1
TSpeed#=0.020

mXSp=MouseXSpeed()
mYSp=MouseYSpeed()

    TurnEntity k1,mYSp*TSpeed,0,0
    TurnEntity k1,0,-mXSp*TSpeed,0

    MoveMouse GraphicsWidth()/2,GraphicsHeight()/2

    MoveEntity k1,0,0,+speedk1#

If KeyDown(30) Then TurnEntity k1,0,0,+Zkrenk1#

If KeyDown(32) Then TurnEntity k1,0,0,-Zkrenk1#

If KeyDown(200) Then TurnEntity k1,+XYkrenk1#,0,0

If KeyDown(208) Then TurnEntity k1,-XYkrenk1#,0,0

If KeyDown(203) Then TurnEntity k1,0,+XYkrenk1#,0

If KeyDown(205) Then TurnEntity k1,0,-XYkrenk1#,0

If KeyDown(42) Then
MoveEntity k1,0,+UpDown#,0
End If

If KeyDown(29) Then
MoveEntity k1,0,-UpDown#,0
End If

If KeyHit(17) Then 

speedk1#=speedk1#+0.5

End If

If KeyHit(31) Then 

speedk1#=speedk1#-0.5

End If

If speedk1#=2 Then

speedk1#=1.5

EndIf

If speedk1#=-0.5 Then

speedk1#=0

EndIf


End Function


Function Planet1World()
Planet1Plane = CreatePlane()
EntityType Planet1Plane,TypeEarth
EntityAlpha Planet1Plane,0.999
Planet1WoterTexture=LoadTexture("1.jpg") 
ScaleTexture Planet1WoterTexture,15,15
EntityTexture Planet1Plane,Planet1WoterTexture

Planet1Nebo = CreatePlane()
PositionEntity Planet1Nebo,0,3000,0
RotateEntity Planet1Nebo, 0, 0, 180
EntityAlpha Planet1Nebo,0.7
EntityType Planet1Nebo,TypeNebo
Planet1NeboTexture=LoadTexture("2.jpg") 
ScaleTexture Planet1NeboTexture,3000,3000
EntityTexture Planet1Nebo,Planet1NeboTexture
End Function


While Not KeyDown(1)

If KeyHit(16) Then
Planet1World()
k1()
Camerak1()
k1u#=1
End If

If k1u#=1 Then 
k1u()
End If

UpdateWorld

RenderWorld
Collisions TypeTehnika,TypeEarth,2,3
Collisions TypeTehnika,TypeNebo,2,3


Flip

Wend

End
этот код у меня работает ... так что давай прекращай уже постить
месаги о том что все глючит кроме тебя, а то уже бесит
jimon издеваешся чтоли?
Я сказал медию заменить а не кубы генирировать.
Кубы и у меня не застревают, а загружаемый меш при такой коллизии при полёте на север застревает, при полёте на юг нет.

Берёш мой код, ставиш свои текстуры, и свою b3d модель.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 16:32   #26
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Прибить гвоздями, либо приварить?


я могу ошибаться, но по-моему колиззии надо делать до апдейт ворлд... или нет, не знаю Б3Д нифига, а лезу еще куда-то )))
__________________
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 17:42   #27
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: Прибить гвоздями, либо приварить?

Я сказал медию заменить а не кубы генирировать
4 года на Блитце и багов никаких с колижном не было ни разу.
И у тебя их нет - есть кривые руки и дурная голова

Тебе нужно решение твоей ошибки - выкладывай пример с медией.
нехер нам делать, решать твои проблемы подбором медиа.
Еще раз для бестолковых: в Блитце бага нет, он исключительно в неправильном коде
__________________
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 19:24   #28
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

Ппц где здесь код неправильный?

Щас выложу с медией...

Добавил:

Вот вам с медией bb файл.

http://ifolder.ru/3932722

Если вы найдёте ошибку в коде влеяющую на коллизию,
то вам блин за это булочную награду выдать надо будет.

И не говорите, что бага нету!
Я проверял на обоих моих компах, и на одном в институте!

Лично я вижу в этом баг плейнов блитца,
модель помещённая между двух плейнов
неправильно об них коллизится.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 19:36   #29
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Прибить гвоздями, либо приварить?

Сообщение от dimanche13

я могу ошибаться, но по-моему колиззии надо делать до апдейт ворлд... или нет, не знаю Б3Д нифига, а лезу еще куда-то )))
Я это уже заранее проверил,
ставил коллизию куда токо можно,
эффект одинаковый.
(Offline)
 
Ответить с цитированием
Старый 30.10.2007, 20:33   #30
jimon
 
Сообщений: n/a
Re: Прибить гвоздями, либо приварить?

Blitzerg
ну и твой пример работает нормально ... ы ?
без разницы загружать модель или создавать куб
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработчикам игр сюда плиз! KiNgKoNg Болтовня 5 19.11.2007 00:28
INDIE GAMES - Игровой журнал в поддержку разработчикам игр и геймерам Alxs Болтовня 22 26.10.2007 15:54
Как издатели относятся к несовершеннолетним разработчикам? ant2on Болтовня 13 20.10.2007 20:24


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


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