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

Mark Castle 23.03.2009 00:00

Чет я не врубился...
 
Народ,такая проблема:
мне нужно в функции обновления игрока в игре пистолет держать,вот функция:
PHP код:

Вот[code]Function update_user()
pistol LoadMesh("Data\Levels\Level1\Gamer\gun.3ds")
PositionEntity pistol,0,0,50
u
# = 70
TurnEntity camera,MouseYSpeed(),0,0
TurnEntity user
,0,-MouseXSpeed(),0
If KeyDown(30Then MoveEntity user,-0.1,0,0
If KeyDown(32Then MoveEntity user,0.1,0,0
If KeyDown(17Then MoveEntity user,0,0,0.1
If KeyDown(31Then MoveEntity user,0,0,-0.1
MoveMouse GraphicsWidth
() *0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
End Function [/code

как его перед собой двигать????
подскажите!

-=Jack=- 23.03.2009 00:04

Ответ: Чет я не врубился...
 
>pistol = LoadMesh("Data\Levels\Level1\Gamer\gun.3ds")
Не грузи меш в каждом кадре.
Для привязки одного объекта к другому юзай наследование. При загрузке меша второй параметр - родитель. Дочерний меш всегда будет двигатся за родителем. Ещё можно юзать EntityParent. Покури справку по этой ф-ции.

impersonalis 23.03.2009 01:48

Ответ: Чет я не врубился...
 

Цитата:

MoveMouse GraphicsWidth() *0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
знакомые всё лица.

Baisangur 23.03.2009 09:53

Ответ: Чет я не врубился...
 
Интересно через сколько кадров этот код нагнёт комп!? =)
Ваще делай так:
1. Меш грузим вне цикла! Грузи в глобальную переменную!
2. После загрузки юзай EntityParent(пистолет, чар)
3. Извращаемся с TurnEntity, MoveEntity и суём пистолет чару в руку. Все, все движения руки будут вести за собой этот пистолет!

Mark Castle 23.03.2009 12:51

Ответ: Чет я не врубился...
 
Цитата:

Сообщение от impersonalis (Сообщение 101457)


знакомые всё лица.

http://blitzetc.blitzmax.ru/index.ph...Person_Shooter

вот именно =)

Mark Castle 23.03.2009 13:28

Ответ: Чет я не врубился...
 
Вот теперь другая проблема:
пистолет двигается по горизонтали,а по вертикали не хочет:mad:
опять же,код:
Код:

Function update_user()
u# = 70
TurnEntity camera,MouseYSpeed(),0,0
TurnEntity user,0,-MouseXSpeed(),0
If KeyDown(30) Then MoveEntity user,-0.1,0,0
If KeyDown(32) Then MoveEntity user,0.1,0,0
If KeyDown(17) Then MoveEntity user,0,0,0.1
If KeyDown(31) Then MoveEntity user,0,0,-0.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EntityParent pistol,user
ScaleEntity pistol,0.1,0.1,0.1
PositionEntity pistol,0.3,-0.1,0.2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MoveMouse GraphicsWidth() *0.5,GraphicsHeight()*0.5
If Abs(EntityPitch#(camera))>u# RotateEntity camera,u#*Sgn(EntityPitch#(camera)),0,0
End Function


Baisangur 23.03.2009 15:01

Ответ: Чет я не врубился...
 
Хм..ваще паренти его вне цикла! Если он к чему либо еще у тебя там не парентится. Скейли также вне цикла. И делай PositionEntity также до цикла, ибо в таком виде как сейчас ты после всех манипуляций с юзером снова ставишь пистолет обратно. Вообщем делай его глобальным после загрузки компаную уже все объекты на сцене и только патом уже запускай цикл!

Mark Castle 24.03.2009 13:22

Ответ: Чет я не врубился...
 
:''(( Народ, вот еще что, не пойму где тут ошибка:
Function update_shot()
For w.shot =Each shot
MoveEntity w\entity,0,0,w\speed
w\max_dist = w\max_dist - 1
If w\max_dist<=0
FreeEntity w\entity
Delete w
ElseIf EntityCollided(w\entity,wall_type)
End
FreeEntity w\entity
Delete w
EndIf
Next
End Function
а то выстрел пролетает через стену и все!:''((

ABTOMAT 25.03.2009 01:08

Ответ: Чет я не врубился...
 
Проблема решается очень просто: нужно использовать команды
ShotThroughTheWalls False
SetAutoCollisions True
Для работы этих команд потребуется Blitz3D 2.0, который можно скачать с офф. сайта.

З.Ы. Включи моск. Ковырять твой код никто не станет, учись сам искать причины ошибок и устранять их.

-=SCiP=- 25.03.2009 01:49

Ответ: Чет я не врубился...
 
Цитата:

Для работы этих команд потребуется Blitz3D 2.0, который можно скачать с офф. сайта.
Эт на каком сайте 2я версия? о_О
В поисковике нету.
Она точно уже вышла?

ABTOMAT 25.03.2009 01:59

Ответ: Чет я не врубился...
 
В смысл поста похоже никто не врубился :wallbash:
Blitz3D 2.0 - это призрак коммунизма, баян из баянов

Mark Castle 25.03.2009 18:53

Ответ: Чет я не врубился...
 
Та-ак...товарищи...еще один вопрос...
я создал fps но у меня вместо ботов шарики...как вставить туда анимированые модели?а то я вставляю MD2 и пули пролетают сквозь бота!!!!!:''(( а меш не знаю как анимировать!...подскажите че мне делать???:''((

falcon 25.03.2009 19:13

Ответ: Чет я не врубился...
 
Mark Castle
гугли по командам
CreateAI("описание модели со всеми характеристиками через запятую")
.................................................. ...............................
.................................................. ...............................
идиотииизм... goto HELP

Mark Castle 26.03.2009 19:07

Ответ: Чет я не врубился...
 
кстати ка изменять скорость мыши?

jimon 26.03.2009 21:47

Ответ: Чет я не врубился...
 
ввести коефицент скорости и домножать на него, или вводить психотропные средства пользователю


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

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