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=1994)

HolyDel 25.12.2006 01:09

Re: Исправьте код
 
у мну в 38-ом посте опечатка.

Тарас Шевченко 25.12.2006 14:55

Re: Исправьте код
 
Ну заменил я и тоже самое как и было у меня.

Horror 25.12.2006 21:31

Re: Исправьте код
 
вот твое + еще коечто+F1-сохранить F2-загрузить P-посмотри пауза:
http://horror-mania.narod.ru/ACTION.rar
че непонятно? даже я понял))

impersonalis 26.12.2006 03:55

Re: Исправьте код
 
faq
http://www.boolean.name/showthread.php?t=1060
:(( и никто не вспомнил

Тарас Шевченко 26.12.2006 19:53

Re: Исправьте код
 
2 Horror: Спасибо конечно, но я не говорил что я чего-то не понял.

Тарас Шевченко 06.01.2007 01:24

Re: Исправьте код
 
Пробовал сделать прыжок (для этого нужна гравитация), но все мои попытки были тщетны. Код здесь http://horror-mania.narod.ru/ACTION.rar

Progger_Leo 12.01.2007 15:51

Re: Исправьте код
 
Вот из одного учебника по блицу:

Код:


Физическая модель прыжка
;Теперь добавим возможность прыжка. Для этого необходимо ввести
; еще одну переменную - ry#, а также приращение dy#:
ry# = -8
dy# = 0
 
;Затем, вводим условие: если нажата клавиша "пробел" и робот
; стоит на земле (т.е. координата ry# = -8), то задаем импульс
; - приращение, равное 2
If KeyDown(57) Then
If ry# = -8 Then dy# = 2
End If
 
;Прибавляем к переменной ry# приращение:
ry# = ry# + dy#
 
;Но, т. к. на робота должна действовать гравитация, мы должны
; периодически уменьшать приращение на 0.1:
dy# = dy# - 0.1
 
;Причем, координата робота ry# не должна быть меньше -8
; (робот не должен опускаться ниже плоскости), поэтому
; введем следующее условие:
If ry# < -8 Then ry# = -8: dy# = 0
 
robot = LoadAnimMesh( "C:\media\standing.3ds" )
LoadAnimSeq robot, "C:\media\running.3ds"
ScaleEntity robot, 0.4, 0.4, 0.4
 
rx# = 10
ry# = -8
rz# = 0
dy# = 0
ang = 90
 
Repeat
 
PositionEntity robot, rx#, ry#, rz#
RotateEntity robot, 0, ang + 90, 0
PointEntity cam, robot
If KeyDown(57) Then
If ry# = -8 Then dy# = 2
End If
ry# = ry# + dy#
dy# = dy# - 0.1
If ry# < -8 Then ry# = -8: dy# = 0
 
If KeyDown(200)
If AnimSeq(robot) = 0 Then Animate robot, 1, 0.5, 1, 10
rx# = rx# + Cos(ang) * 0.5
rz# = rz# + Sin(ang) * 0.5
Else
If AnimSeq(robot)=1 Then Animate robot, 2, 1, 0, 10
End If
If KeyDown(203) Then ang = ang + 5
If KeyDown (205) Then ang = ang - 5
If KeyDown(1) Then Exit
UpdateWorld
RenderWorld
Flip
Forever

---
* правка jimon : так лутче imho

CRACK 15.02.2007 20:32

Re: Исправьте код
 
Эта модель не подходит для нормального гэйма, так как она не отображает возможность между колизией уровня и игрока, а только с плоскостью, ну например если ты захочешь запрыгнуть на ящик, то ты провалишься в него( ну в целом заморочек с коллизеей там намного больше чем просто запрыгнуть на ящик).
Я тоже самое пытался сделать, но вот никак не могу допытаться нормального прыжка. Пытался сделать сделать через EntityCollided но что-то не вышло, если можете, помогите пожалуйста...

Тарас Шевченко 15.02.2007 23:09

Re: Исправьте код
 
Делай столкновения игрока с землей, а после Repeat что-то пиши:

MoveEntity player,0,-1,0 ; Это будет притягивать игрока к поверхности, а коллизии не дадут ему провалится.

Введи переменные положения игрока например:

x#=0
y#=0
z#=0

А при прыжке просто прибавляй к переменной y# прибавляй число, но только чтобы в сумме с гравитацией значение больше 0.

If KeyDown(57) Then y#+2

Я так делал у меня перс и нормально прыгал и запригивал на ящики, но есть одно если не отпускать клавишу переменная будет прибавлятся и прибавлятся, а при If KeyHit(57) персы не прыгает.

Надеюсь разберешься.

Вопрос знатокам: это способ с коллизией не будет затормаживать игру?

CRACK 16.02.2007 16:13

Re: Исправьте код
 
Вот в том-то и дело что будет прибавляться бесконечно, и это не катит! А вот как сделать так чтобы нельзя было ещё раз нажать, пока он не приземлится, if Not Collided, может поможет, хотя врядли....

Colossus 21.11.2008 14:03

Ответ: Исправьте код
 
прыжок сделать впринципе не трудно)

можно попробывать кой чего)

ну графитация у нас есть ну и ладно

если KeyHit(57) то чубрик летит вверх
если расстояние от земли то плеера больше например 5 то задаем челу приземление)

nikerban 21.07.2010 12:02

Ответ: Исправьте код
 
можно например сделать типа этого.
y#=0
If KeyDown(57) Then y#=+0.3
moveentity cam,0,-0.05,0
if 0.4<y# then moveentity cam,0,-100,0
if 0.4>y# then moveentity cam,0,0.05,0
типа я так придумал)

Arton 21.07.2010 12:12

Ответ: Исправьте код
 
Цитата:

Сообщение от nikerban (Сообщение 155786)
можно например сделать типа этого.
y#=0
If KeyDown(57) Then y#=+0.3
moveentity cam,0,-0.05,0
if 0.4<y# then moveentity cam,0,-100,0
if 0.4>y# then moveentity cam,0,0.05,0
типа я так придумал)

Аргх!!! Когда будем смотреть на дату сообщений!!! Некропостер, блин!!! :wild: >>:(

Человеку уже сто лет это ненужно!!!

Nuprahtor 21.07.2010 12:14

Ответ: Исправьте код
 
Человек хотя-бы помочь хочет, а что сделали Вы?

Arton 21.07.2010 12:31

Ответ: Исправьте код
 
Цитата:

Сообщение от Nuprahtor (Сообщение 155788)
Человек хотя-бы помочь хочет, а что сделали Вы?

Когда могу, помогаю... Но не там где человек несколько лет назад спрашивал...

P.S. Что, Nuprahtor, тоже надоело как новичков некропостерами называют...
Мне тоже...
Ещё достаёт когда не по делу несколько постов подряд от одного пользователя...

P.P.S. Больше тут писать не буду, если кто то захочет подискутировать - в ЛыСы!


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

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