forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   помогите плизз (http://forum.boolean.name/showthread.php?t=7356)

jc[wcr] 21.11.2008 12:14

помогите плизз
 
народ вот в чом вопрос вот вам кодик
Код:

mxspd#=MouseXSpeed()*0.25
myspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 
campitch#=EntityPitch(head)+myspd#
If campitch#<-3 Then campitch#=-3
If campitch#>7 Then campitch#=7 
RotateEntity head,campitch#,EntityYaw(head)-mxspd#,EntityRoll(player)

ну ето код обзора мышой в пространстве и куда смотрити мышкой туда и перемещаеться
вопрос:как сделать например чтобы голова(head)шла токо по Y
тоесть в верх и низ,а player чтобы если повернуть мышкой вправо то поварачивался player и голова за ним

Colossus 21.11.2008 13:29

Ответ: помогите плизз
 
Кто нибуть что нибудь понял?!)))) поставь вопрос правильно)) т под пиши в тегэ кода

Yanez 21.11.2008 13:36

Ответ: помогите плизз
 
Если правильно понял твою мысль, тебе нужно два ентити(пивоты например).
Один для player. Другой для головы (родителем назнач player).

В цикле для головы: TurnEntity голова, MouseYSpeed(),0,0

Примерно так.

jc[wcr] 21.11.2008 14:04

Ответ: помогите плизз
 
как файл суда добавить? так обьяню может поймете
ну или в том коде еоторый я дал выше как сделать чтобы камера вправо -влево неповорачивалась

HolyDel 21.11.2008 14:06

Ответ: помогите плизз
 
RotateEntity ent,EntityPitch(ent),0,EntityYaw(ent)

ставить после всех манипуляций, но до рендера.

jc[wcr] 21.11.2008 14:10

Ответ: помогите плизз
 
ОО спасибо помогло вот ещо вопросик сори что невтему как сделать реалистичный прыжок но тока не через translateentity?

Yanez 21.11.2008 14:15

Ответ: помогите плизз
 
Цитата:

Сообщение от jc[wcr] (Сообщение 91022)
ОО спасибо помогло вот ещо вопросик сори что невтему как сделать реалистичный прыжок но тока не через translateentity?

чем не нравится?

jc[wcr] 21.11.2008 14:24

Ответ: помогите плизз
 
вот стандартный код прыжка
translateentity player,0,2,0
translateentity player,0,-.8,0
но он какойто нетакой резко поевляешся вверху и потом быстро падаеш вниз даже незамечаеш как вверху очутился

Yanez 21.11.2008 14:42

Ответ: помогите плизз
 
Цитата:

Сообщение от jc[wcr] (Сообщение 91024)
вот стандартный код прыжка
translateentity player,0,2,0
translateentity player,0,-.8,0
но он какойто нетакой резко поевляешся вверху и потом быстро падаеш вниз даже незамечаеш как вверху очутился

попробуй поменять цифровые значения.

(гравитация - 2.0, прыжок 3.0):?? :??

ABTOMAT 21.11.2008 16:19

Ответ: помогите плизз
 
Вложений: 1
Цитата:

Сообщение от jc[wcr] (Сообщение 91024)
вот стандартный код прыжка
translateentity player,0,2,0
translateentity player,0,-.8,0
но он какойто нетакой резко поевляешся вверху и потом быстро падаеш вниз даже незамечаеш как вверху очутился

Тут не транслейтентити виноват, а афтор кода.
В аттаче как всегда пример для падаванов юных
(будеть время побездельничать, так напишу FAQ)

jc[wcr] 21.11.2008 17:04

Ответ: помогите плизз
 
Вооо СПасибО

ABTOMAT 21.11.2008 23:30

Ответ: помогите плизз
 
Цитата:

Сообщение от jc[wcr] (Сообщение 91048)
Вооо СПасибО

Кнопочка такая существует ;)

jc[wcr] 22.11.2008 13:21

Ответ: помогите плизз
 
чото неставицо((
Код:

Graphics3D 1280,1024 ,32,1
Global sky=mAKESKYBOX("sKY/")
Const T_player=1 
Const T_terrain=2
Const T_zdan=2
player=LoadAnimMesh("man.3ds")
head=LoadMesh("head.3ds")
EntityParent head,player
PositionEntity player,0,40,0
Sound=LoadSound ("DStep02.wav")
LoopSound Sound
Function MakeSkyBox( file$ )

        m=CreateMesh()
        ;front face
        b=LoadBrush( file$+"sky_fr.JPG",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0
        AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;right face
        b=LoadBrush( file$+"sky_ri.JPG",49 )
        s=CreateSurface( m,b )
        AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0
        AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;back face
        b=LoadBrush( file$+"sky_bk.JPG",49 )
        s=CreateSurface( m,b )
        AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0
        AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;left face
        b=LoadBrush( file$+"sky_le.JPG",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0
        AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b
        ;top face
        b=LoadBrush( file$+"sky_up.JPG",49 )
        s=CreateSurface( m,b )
        AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0
        AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1
        AddTriangle s,0,1,2:AddTriangle s,0,2,3
        FreeBrush b

        ScaleMesh m,150,150,150
        FlipMesh m
        EntityFX m,9
        EntityOrder m,10
        Return m
       
End Function
ScaleEntity SKY,150,150,150
Camera=CreateCamera(head)
PositionEntity camera ,0,0.8,0
CameraRange Camera,0.1,100000
Light=CreateLight(1,Camera)
LightRange Light,5
terrain=CreatePlane()
tex=LoadTexture("terrain1.jpg")
energy=LoadImage("enege.jpg")
life=LoadImage("Life.jpg")
zdan=LoadAnimMesh("zdan1.3ds")
PositionEntity zdan,0,5,0
ScaleTexture tex,2,2
EntityAlpha head,0
EntityTexture terrain ,tex
EntityType player,T_player
EntityType terrain, T_terrain
EntityType zdan,T_zdan
Collisions T_player,T_terrain,2,3
Collisions T_player,T_zdan,1,2
While Not KeyHit(2)
TranslateEntity PLAYER,0,-0.4,0
myspd#=MouseYSpeed()*0.25
mxspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 
campitch#=EntityPitch(head)+myspd#
If campitch#<-4 Then campitch#=-4
If campitch#>7 Then campitch#=7 
RotateEntity head,campitch#,EntityYaw(head)-mxspd#,EntityRoll(head)
If KeyHit(17) Then Animate player,1,2
If Not KeyDown(17) Then Animate player,1,0
If KeyDown(17) MoveEntity player,0,0,.2
If KeyDown(31) MoveEntity player,0,0,-.2
If KeyDown(32) MoveEntity player,.2,0,0
If KeyDown(30) MoveEntity player,-.2,0,0
        If jump = 1 Then
                TranslateEntity player,0,vector*dt*.1,0
                vector = vector - .001*dt
        End If
       
        If KeyHit(57) And jump=0 Then vector = 1: jump = 1
        If jump = 1 Then
                If EntityCollided (player,T_terrain) Then        jump = 0
        End If
RotateEntity head,EntityPitch(head),0,EntityYaw(head)
RenderWorld
       

UpdateWorld

DrawImage energy,1020,975
DrawImage life,1020,1000
Flip
CameraRange CAMERA,0.1,100000

Wend
End


Colossus 22.11.2008 14:38

Ответ: помогите плизз
 
медию выложи ато народу трудно ковырять без ресурсов))

ABTOMAT 22.11.2008 15:04

Ответ: помогите плизз
 
vector обозначь как дробную переменную
*все беды от невнимательности

Colossus 22.11.2008 17:12

Ответ: помогите плизз
 
Цитата:

*все беды от невнимательности
в точку!

FroZy 29.11.2008 15:37

Ответ: помогите плизз
 
По названию тема подойдёт, напишу сдесь (:
Вобщем у меня два вопроса, помогите разобраться ^^*
1) Как отрендерить модель в текстуру? Т.е. имеется модель, анимированная, нужно сгенерировать текстуру с её видом сверху - решил вот тень замутить, обычное пятнышко не устраивает, хочу чтоб релалистично шевелилось (: Я придумал один черезжопный метод, но он меня совершенно не устраивает и к тому же притормаживает главный цикл.
2) Раньше никогда не рисовал на текстурах(но как это делать знаю) и вот вопрос, ведь эту тень нужно рисовать каждую интерацию => получиться много "ляпок" теней на земле, я знаю о существовании в блице понятия "кисть", как я понял она используется для продвинутого текстурирования модели. Значит можно сделать так:

- Загружаем модель уровня(затекстурено несколькими текстурами)
- сохраняем кисть этой модели
---Главный цикл---
....
- Используем сохранённую кисть и востанавливаем текстуру уровня(чтоб стереть тень нарисованную в предыдущей интерации)
- Создаём пивот в центре персонажа
- Назначем ему коллизию с уровнем
- сдвигаем его вниз на определённое расстояние
* Если он столкнулся с землёй, то дальше не пойдёт - проверено
* Значит так мы узнаем координаты и преобразуем их в текстурные
- Дальше если имеем столкновение - рисуем тень!
- Рисуем тень!
- Удаляем пивот
....
---Конец циклу---

Так можно? А если нет, то как тогда?

Если это уже разбиралось в другой теме ткните носом, изучю (:

ABTOMAT 29.11.2008 16:00

Ответ: помогите плизз
 
Вложений: 1
FroZy
1. в чистом блице без либ именно через жопу :) хотя я так делал и неплохо работает :)
2. Не стоит с этим заморачиваться, всегда делают отдельным мешем на котторый вешается текстура тени и который повторяет тот участок земли на котором находится

Пример вдогонку (сам ковырял по нему, хотя некоторые вещи пришлось сделать иначе)

jc[wcr] 29.11.2008 21:47

Ответ: помогите плизз
 
да кстате можете в Фак по блитзу обьяснить попорядку чо и как создать тень все с нуля для чайничков))

ABTOMAT 30.11.2008 00:01

Ответ: помогите плизз
 
багага
создание (ручками) тени - это тема не для чайников
а вот например тутор по Ашадову - неплохая идея) Может займусь, да только времени всё нет

jc[wcr] 30.11.2008 07:39

Ответ: помогите плизз
 
ашадоу говорят полная лажа на полики ругаеца,а вот девил шадов ето говорят очеь крутая тема

HolyDel 30.11.2008 12:40

Ответ: помогите плизз
 
Цитата:

ашадоу говорят полная лажа на полики ругаеца,а вот девил шадов ето говорят очеь крутая тема
кто говорит?

ABTOMAT 01.12.2008 00:43

Ответ: помогите плизз
 
Не знаю, я юзал ашадов и всё было в порядке.
Насколько я знаю, это пока что единственная либа стенсильных теней для блица.
Хотя, то что говорят кушает много - так действительно много. С другой стороны можно использовать разумно и избежать тормозов.

Ичигорь 01.12.2008 16:01

Ответ: помогите плизз
 
Тоже верно!
А, еще можно использовать Xors...

jc[wcr] 03.12.2008 17:09

Ответ: помогите плизз
 
спрашиваю самое непонятное как сделать коллизию с loadanimmeШным обьектом по стандартному принципу неставитсо

IGR 03.12.2008 23:17

Ответ: помогите плизз
 
в поиск !!
по этому форуму и врод на сайте ХолиДела было !!

ABTOMAT 04.12.2008 00:22

Ответ: помогите плизз
 
Цитата:

Сообщение от jc[wcr] (Сообщение 91567)
спрашиваю самое непонятное как сделать коллизию с loadanimmeШным обьектом по стандартному принципу неставитсо

Каждому чилду назначать коллизию.

Yanez 04.12.2008 07:08

Ответ: помогите плизз
 
Каждому чилду? Блитц не надорвется?

P.S. г-н Маслов, видел твой пример с 10 000 спрайтами-ёлками. :super: Как реализовал? Addmeshom, в один сюрфейс? скажи, пожалуйста

ABTOMAT 04.12.2008 13:47

Ответ: помогите плизз
 
Yanez
Цитата:

Каждому чилду? Блитц не надорвется?
Надорвётся ;) Потому и надо всячески избегать большого числа объектов и анимированных мешей ( = несколько объектов вместо одного), если только без них ну никак.
Цитата:

P.S. г-н Маслов, видел твой пример с 10 000 спрайтами-ёлками. Как реализовал? :super: Addmeshom, в один сюрфейс? скажи, пожалуйста
Не, там программно строился квад, т.е. AddVertex , AddTriangle, а затем при помощи математики поворачивался к камере. Если не нужно ничего поворачивать - то можно и АддМешом (вроде - не пробовал) обойтись. Увы, в блице медленный доступ к сурфейсам и медленная математика, нужно выносить вычисления в С++ , которым я владею на уровне HelloWorld'а, потому проЭкт пока заброшен (ждёт, пока поумнею на С++ поприще)
Но несмотря на все "прелести" блитзевской маттематики единый сурфейс дал огромный (до 5000%) прирост скорости

Yanez 05.12.2008 13:14

Ответ: помогите плизз
 
Спасибо, очень полезно.

Yanez 05.12.2008 13:18

Ответ: помогите плизз
 
Shadow map фукнция(нашел на форуме, от Vyacheslava):

...(типы и прочее)....

Function SS_RenderShadowTexture(MCam,SCam)
HideEntity MCam
ShowEntity SCam
SS_HideReceivers()
RenderWorld
CopyRect 0,0,TexResolution,TexResolution,0,0,BackBuffer(),T extureBuffer(ShadowTex)
EntityTexture MPlane,ShadowTex,0,1
ShowEntity MCam
HideEntity SCam
SS_ShowReceivers()
End Function

Юзабельна? Скорость вроде хороша

ABTOMAT 05.12.2008 13:22

Ответ: помогите плизз
 
Цитата:

Сообщение от Yanez (Сообщение 91675)
Shadow map фукнция(нашел на форуме, от Vyacheslava):

...(типы и прочее)....

Function SS_RenderShadowTexture(MCam,SCam)
HideEntity MCam
ShowEntity SCam
SS_HideReceivers()
RenderWorld
CopyRect 0,0,TexResolution,TexResolution,0,0,BackBuffer(),T extureBuffer(ShadowTex)
EntityTexture MPlane,ShadowTex,0,1
ShowEntity MCam
HideEntity SCam
SS_ShowReceivers()
End Function

Юзабельна? Скорость вроде хороша

Ну ето собсно проецированные тени.
Юзабельна ли? ИМХО только на terrain'ообразной поверхности земли. + Ещё камера может не все предметы охватить. Для других типов уровней лучше делать генерацию меша для тени.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot