forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

KingMaks 02.02.2010 18:14

Ответ: Вопрос-Ответ (для новичков)
 
NitE
При загрузке шрифтов формат вроде как не надо писать.

В любом случае ето не помгло:)

NitE 02.02.2010 18:20

Ответ: Вопрос-Ответ (для новичков)
 
надо, и текст выводи

Text 10,10,""+что угодно

проверь путь стопицот раз.

KingMaks 02.02.2010 21:21

Ответ: Вопрос-Ответ (для новичков)
 
Все теперь только Arial читает,
остальные один и тотже шрифт : тонкий, некрасивый.

Blender 02.02.2010 23:07

Ответ: Вопрос-Ответ (для новичков)
 
блин... у кого есть пример нормального прыжка(от первого лица)....
Взял функцию mr.DIMAS
Цитата:

Для плавного прыжка я сделал ф-цию воть она(юзайте в цикле) а в глобальных переменных напишите:
Global jump_speed
Затем ф-цию:
Function UpdateJump(MovEnt,ObjFrom,JH)
jump_Speed=jump_speed-0.9
If jump_speed <=0 Then jump_speed = 0
If EntityCollided(MovEnt,ObjFrom) If KeyHit(57) Then
jump_speed=JH
End If
TranslateEntity MovEnt,0,jump_speed,0
End Function
Прыжок не плавный.. плюс в плотную с стенкой можно быть спайдерменом(пригать по стенкам)....
Че делать??

St_AnGer 02.02.2010 23:22

Ответ: Вопрос-Ответ (для новичков)
 
Где то уже этот вопрос поднимался... Помоему надо использовать нормали коллизии и в зависимости от угла разрешать прыгать или нет... Поищи, где-то это было недавно

KingMaks 02.02.2010 23:32

Ответ: Вопрос-Ответ (для новичков)
 
Blender

Код:

;------Гравитация
If jump = 0 Then
If KeyHit(57) Then gravity = 0.1 : gravity2 = 0.03:jump = 1:Animate player,3,1,player_jump,0
End If
If Not EntityCollided(player,typesolid) Then jump = 1
If jump = 1 Then gravity = gravity + gravity2: gravity2 =gravity2 - 0.002:jump = 1

InGround = 0
EntCol = EntityCollided(player,typesolid)
If EntCol <> 0 Then
  For n = 1 To CountCollisions(player)
    If CollisionNY(player,n) > 0.5 Then
      InGround = 1
      If AnimSeq(player) = 4 Then Animate player,1,1,idle,0
      Exit
    End If
  Next
End If

If InGround = 1 Then
 gravity = 0:gravity2 = 0:jump = 0
End If

TranslateEntity player,0,gravity/2,0

End Function

Вот те пример моей гравитации с прыжком, работает отлично

Blender 02.02.2010 23:38

Ответ: Вопрос-Ответ (для новичков)
 
Немогу понять эту строчку
Код:

If KeyHit(57) Then gravity = 0.1 : gravity2 = 0.03:jump = 1:Animate player,3,1,player_jump,0
Зачем гравити 1 и гравити 2?
блин еще и с анимацией...
ваще не могу разобратся....

KingMaks 02.02.2010 23:46

Ответ: Вопрос-Ответ (для новичков)
 
Blender

Гравити1 скорость движения игрока вниз

а гравити2 прибавляем с каждым проходом цикла
к гравити1 чтобы
гравити1 все время возростало, и естествено гравити2 стаёт тоже больше и больше

и таким образом гравитация ставала всё больше и больше - ускоренее вобщем.

Вот в етой игре http://forum.boolean.name/showthread.php?t=11734
работает ета гравитация, можеш посмотреть как

Blender 03.02.2010 00:04

Ответ: Вопрос-Ответ (для новичков)
 
Оооооо друг...
Величайшее спасибо.... ....
Лучше чем ожидал...

п.с. код твой?

KingMaks 03.02.2010 00:32

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Blender (Сообщение 135759)
п.с. код твой?

Да:)

RlexGm 04.02.2010 12:01

Ответ: Вопрос-Ответ (для новичков)
 
Люди, помогите)
у меня тут проблема такая:
делаю лифт(а конткретно двери) код:
If XCL=94 Then Close2L=0,Close2LP=0
XCL это кордината одной двери
При Close2L=1 ну и Close2LP=1 двери закрываются
При координате 94 они останавливаются
Но при следующим открытием они не открываются и вот почему=):
Когда XCL становиться не равна 94 то условие не работает и Close2L и Close2LP становятся равны 1 и получается что они едут в разные стороны и поэтому стоят наместе... как реализовать нормальное закрытие и открытие?)

Reizel 04.02.2010 17:02

Ответ: Вопрос-Ответ (для новичков)
 
Гм...Ничерта не понял, но посоветую сделать так:
for W.Wall=each Wall
If EntityDistance(Player,W\Entity)<10
W\Close=0
else
W\Close=1
endif

if W\Close
;закрываем дверь
else
;Открываем
endif
next

Условия можно сделать для люьых объектов, в данном случае - с игроком.

RlexGm 04.02.2010 17:26

Ответ: Вопрос-Ответ (для новичков)
 
Павел, в коде написано когда срабатывает закрытие, у меня тут подругому малясь , не когда подходиш, проблема как чтобы дверь прекращалась закрываться когда достигнет данной координаты. Если сделать тупа как я написал , то когда условие небудет выполнятся ( XCL не равно 94) то она опять будет закрываться и изза этого она х** откроется

Reizel 04.02.2010 17:49

Ответ: Вопрос-Ответ (для новичков)
 
эх... Код в студию, пожалуйста. Желательно небольшой сэмпл, попробую сделать чтоб работало

RlexGm 04.02.2010 18:41

Ответ: Вопрос-Ответ (для новичков)
 
гм зачем тут код=) ну можн как нить сэпл напишу=)
все же просто)
Условие открываний и закрываний...
If open2L=1
MoveEntity DVXL2LV,0.3,0,0
MoveEntity DVXL2PR,-0.3,0,0
MoveEntity DV2LLV2,0.3,0,0
MoveEntity DV2LPR2,-0.3,0,0
XCL=EntityX(DVXL2LV)
EndIf

If open2LP=1
MoveEntity DV2LPR,0.3,0,0
MoveEntity DV2LLV,-0.3,0,0
PCL=EntityX(DV2LPR)
EndIf

If Close2L=1
MoveEntity DVXL2LV,-0.3,0,0
MoveEntity DVXL2PR,0.3,0,0
MoveEntity DV2LLV2,-0.3,0,0
MoveEntity DV2LPR2,0.3,0,0
XCL=EntityX(DVXL2LV)
EndIf

If Close2LP=1
MoveEntity DV2LPR,-0.3,0,0
MoveEntity DV2LLV,0.3,0,0
PCL=EntityX(DV2LPR)
EndIf


Впринцепе при открывании я решил эту проблему вот так:
If XCL=109 Then ONl24=1
If ONl24=1
If (MilliSecs()-time>1) Then time = MilliSecs():Open2L=0:open2LP=0

EndIf
а вот тоже самое для закрытия не получается , оно тогда вообще тогда двигатся бесконечно будет..


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

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