![]() |
Исправьте код
Вложений: 2
Привет всем. Учу Блитц 3Д и для изучения решил написать простенькую стрелялку дабы набраться опыта.
1 - Посмотрите мой код и скажите как сделать чтобы анимация останавливалась. 2 - Подскажите как сделать поворот мышкой? И пробовал типа if mouse(x) но у меня чето не выходит. Хочу камеру на подобии GTA: San Andreas. |
Re: Исправьте код
Ты волшебное слово забыл :)
|
Re: Исправьте код
1.За анимацию отвечает отдельный кусок кода. Клавишами лишь задавай ему режимы работы.
Код:
AnimMode=0 Код:
TurnEntity Entity, MouseYSpeed()*SensY, MouseXSpeed()*SensX,-EntityRoll(Entity) 0. Темы мусолились на форуме не раз. Достаточно заюзать Поиск 1. Не надо флудить. Если не отвечают- значит ответят позже. Если позже не ответили- значит такой был вопрос. Удач! |
Re: Исправьте код
|
Re: Исправьте код
Для поворота мышкой пробовал:
If MouseX()>0 Then TurnEntity cub,0,-1,0 Else TurnEntity cub,0,1,0 EndIf получилось, но когда поворачиваешь поворот не останавливается. Что делать? |
Re: Исправьте код
не MouseX а там команда со скоростью ... MouseXSpeed вроде или чето того
|
Re: Исправьте код
Мне кажется (если я тебя прально понял) тебе стоит после
Repeat Написать следующий код: Код:
angy#=-MouseYSpeed()*0.1 |
Re: Исправьте код
Цитата:
я в ШОКЕ. я так понимаю, это куб поворачивается в одну сторону если мыш прижат к левой стенке монитора и в другую если не прижат :DF 20 F4 20 D8 CE CA C5 20 CD C0 D5 2E: |
Re: Исправьте код
2HolyDel
Ну чё тут удивляться-то ??? Человек начал изучать БЛИТС.. А при начале изучения можно ещё и не такое написать! ;) |
Re: Исправьте код
Мышкой попробую сам разобраться, а остановку анимации ну хоть убейте - не могу! Помогите исправьте сам код чтобы у вас все работало, а я что только не делал. Плиз, помогите!
|
Re: Исправьте код
Цитата:
|
Re: Исправьте код
запутался в коде =/
|
Re: Исправьте код
2Тарас Шевченко
Код:
На счёт анимации, надо глянуть, ща времени нет. |
Re: Исправьте код
2 KRIK: спасибо! Как будет время помоги с анимацией.
|
Re: Исправьте код
If KeyHit(17) Animate cub,2,.5,walk
If KeyHit(31) Animate cub,2,.5,walk If KeyDown(17)=0 And KeyDown(31)=0 And AnimSeq(cub)<>stand And AnimSeq(cub)<>shot Then Animate cub,2,.3,stand If Animating(cub)=0 Then Animate cub,2,.3,stand If MouseHit(1) Animate cub,3,.5,shot |
Re: Исправьте код
2 HolyDel: Большое спасибо, всё работает так как мне и надо было!
|
Re: Исправьте код
Как сделать при нажатии левой кнопки мышки звук выстрела который бы проигрывался один раз?
|
Re: Исправьте код
Вложений: 2
Еще вопрос: Вот мой код, как сделать меню? Желательно объяснение исходником. Нужно чтобы была картинка и кнопочки Новая игра и Выход.
Заранее спасибо! |
Re: Исправьте код
про звук:
как вариант через MouseHit. if MouseHit(1) then chm=playsound(shoot) хотя мне больше нравится так reload_time=reload_time+1 if reload_time>6 and mousedown(1) chm=playsound(shoot) reload_time=0 endif ;ето типа автомат: пух пух пух. про мену тока завтра и то имхо. |
Re: Исправьте код
2 HolyDel: Пасибо! С меню кто-нить поможет?
|
Re: Исправьте код
Можно выкладывать КОМПИЛИРУЕМЫЙ исходник? (c) Impersonalis
с необходимой медиа? |
Re: Исправьте код
Вложений: 2
Вот держите с ресурсами. Внимание: у мну проблемы с инетом и из-за этого текстуры урезанны до безобразия! Кто будет качать скажите скоко у вас выдает FPS.
|
Re: Исправьте код
Вложений: 2
ВОТ:
|
Re: Исправьте код
Большое спасибо! А как сделать чтобы при выстреле у меня работала анимация? Я сам пробовал вот так:
;Стрельба If MouseHit(1)Animate robot,3,.5,shotAnd create_shot(EntityX(robot),1,EntityZ(robot),Entity Pitch(cam),EntityYaw(robot) - 90,0) Но так анимация глючит. |
Re: Исправьте код
Вложений: 2
Вот такая штука происходит если навести курсор на картинку с черным цветом и действует только на черный цвет. Как это исправить?
|
Re: Исправьте код
CLS поставь после FLIP.
или MaskImage fon,42,56,11 - установить другой прозрачный цвет |
Re: Исправьте код
Спасибо! А как там с анимацией и выстрелом? И как сделать чтобы игра и ресурсы грузились не в меню, а после нажатия новая игра?
|
Re: Исправьте код
|
Re: Исправьте код
Ну актион типа экшен (action), просто так назвал.
|
Re: Исправьте код
|
Re: Исправьте код
у тебя ж вроде и так почти все грузится после нажатия "новая игра"?
перенеси всю загрузку медиа после Wend цикла обработки менЮ. |
Re: Исправьте код
А да всё правильно, я просто музыку грузил перед созданием менюшки. Спасибо.
|
Re: Исправьте код
А как реализовать систему сохранения и загрузки и чтобы можно было нажать escape вернуться в меню и сохраниться или загрузить, а игра в это время была на паузе.
|
Re: Исправьте код
у тебя когда на шифт нажимаешь чел идет без анимации когда на w с анимацией! зачем? типо бег??
попробуй так Код:
Function updateplayer() Код:
updateplayer() а на твой вопрос про паузу тоже хотелбы узнатть ответ ! буду ждать... |
Re: Исправьте код
насчет пузы:
[blitz] if keyhit(25) ;P pause=1 endif while pause text 400,300,"ПАУЗА, БЛИН",1,1 flip if keyhit(25) then pause=0 wend [/blitz] должно работать, хотя пысалось в браузере, поэтому ХЗ |
Re: Исправьте код
насчет сохранения.
придется писать в файл, есть команды WriteFile, ReadFile, ReadByte и т.д. придтся сохранять в файл все значимые параметры, и при загрузке восставнавливат их. |
Re: Исправьте код
HolyDel Если я понял правильно тебя то надо зафиксировать последние игровые события и записать в файл. Но как работать этими командами WriteFile, ReadFile, ReadByte? Подскажи.
|
Re: Исправьте код
ну, просто для паузы нерационально записывать в файл, и геморно и непроизводительно, а для сохранения самое то.
для примера: e=writefile("save.acs") writefloat e,entityx(player) writefloat e,entityz(player) writefloat e,entityz(player) writefloat e,entityyaw(player) closefile e ето мы открывпем файл, записываем инфу о объектке, хзакрывем файл. для загрузки e=readfile("save.acs") positionentity player,readfloat(e),readfloat(e),readfloat(e) rotateentity player,0,readfloat(e),0 closefile e |
Re: Исправьте код
Так как мне для моего кода применить? Мне надо создавать функцию создания игрока? Если не трудно помоги.
|
Re: Исправьте код
зачем?
пришла пора сохраниться (нажали на кнопку или рещили выйти) запускаем код на запись файла, пришла пора загрузиться читаем из файла. для того чтоб конкретно помочь конкретно в твоей ситуации мне нужен твой конкретный код. музыку могу сам закоментить |
Re: Исправьте код
Вложений: 2
Да код в принципе прежний, у меня там выстрел с анимацией барахлит.
;Стрельба If MouseHit(1)Animate robot,3,.5,shotAndcreate_shot(EntityX(robot),1,EntityZ(robot),Entity Pitch(cam),EntityYaw(robot) - 90,0) Закоментируй так, чтобы было просто и ясно |
Re: Исправьте код
2 HolyDel Попробовал сам, но не очень
;Сохранение If KeyDown(63) e=WriteFile("save.txt") WriteFloat e,EntityX(robot) WriteFloat e,EntityZ(robot) WriteFloat e,EntityZ(robot) WriteFloat e,EntityYaw(robot) CloseFile e If KeyDown(67) b=ReadFile("save.txt") PositionEntity robot,ReadFloat(b),-.9,ReadFloat(b) RotateEntity robot,0,ReadFloat(b),0 CloseFile b Когда загружаю игрок позиция таже только по X и Z, а по Y другая вот и написал: ReadFloat(b),-.9 А как у тебя дела с сохранением обстоят? |
Re: Исправьте код
If KeyDown(63) e=WriteFile("save.txt")
WriteFloat e,EntityX(robot) WriteFloat e,EntityZ(robot) WriteFloat e,EntityZ(robot) WriteFloat e,EntityYaw(robot) CloseFile e коммнетаории излишне. |
Re: Исправьте код
Так у меня ведь тоже самое.
|
Re: Исправьте код
выделеную Z в коде HolyDel'а замени на Y
если додумаешся зачем - напиши |
Re: Исправьте код
у мну в 38-ом посте опечатка.
|
Re: Исправьте код
Ну заменил я и тоже самое как и было у меня.
|
Re: Исправьте код
вот твое + еще коечто+F1-сохранить F2-загрузить P-посмотри пауза:
http://horror-mania.narod.ru/ACTION.rar че непонятно? даже я понял)) |
Re: Исправьте код
|
Re: Исправьте код
2 Horror: Спасибо конечно, но я не говорил что я чего-то не понял.
|
Re: Исправьте код
Пробовал сделать прыжок (для этого нужна гравитация), но все мои попытки были тщетны. Код здесь http://horror-mania.narod.ru/ACTION.rar
|
Re: Исправьте код
Вот из одного учебника по блицу:
Код:
* правка jimon : так лутче imho |
Re: Исправьте код
Эта модель не подходит для нормального гэйма, так как она не отображает возможность между колизией уровня и игрока, а только с плоскостью, ну например если ты захочешь запрыгнуть на ящик, то ты провалишься в него( ну в целом заморочек с коллизеей там намного больше чем просто запрыгнуть на ящик).
Я тоже самое пытался сделать, но вот никак не могу допытаться нормального прыжка. Пытался сделать сделать через EntityCollided но что-то не вышло, если можете, помогите пожалуйста... |
Re: Исправьте код
Делай столкновения игрока с землей, а после Repeat что-то пиши:
MoveEntity player,0,-1,0 ; Это будет притягивать игрока к поверхности, а коллизии не дадут ему провалится. Введи переменные положения игрока например: x#=0 y#=0 z#=0 А при прыжке просто прибавляй к переменной y# прибавляй число, но только чтобы в сумме с гравитацией значение больше 0. If KeyDown(57) Then y#+2 Я так делал у меня перс и нормально прыгал и запригивал на ящики, но есть одно если не отпускать клавишу переменная будет прибавлятся и прибавлятся, а при If KeyHit(57) персы не прыгает. Надеюсь разберешься. Вопрос знатокам: это способ с коллизией не будет затормаживать игру? |
Re: Исправьте код
Вот в том-то и дело что будет прибавляться бесконечно, и это не катит! А вот как сделать так чтобы нельзя было ещё раз нажать, пока он не приземлится, if Not Collided, может поможет, хотя врядли....
|
Ответ: Исправьте код
прыжок сделать впринципе не трудно)
можно попробывать кой чего) ну графитация у нас есть ну и ладно если KeyHit(57) то чубрик летит вверх если расстояние от земли то плеера больше например 5 то задаем челу приземление) |
Ответ: Исправьте код
можно например сделать типа этого.
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 типа я так придумал) |
Ответ: Исправьте код
Цитата:
Человеку уже сто лет это ненужно!!! |
Ответ: Исправьте код
Человек хотя-бы помочь хочет, а что сделали Вы?
|
Ответ: Исправьте код
Цитата:
P.S. Что, Nuprahtor, тоже надоело как новичков некропостерами называют... Мне тоже... Ещё достаёт когда не по делу несколько постов подряд от одного пользователя... P.P.S. Больше тут писать не буду, если кто то захочет подискутировать - в ЛыСы! |
Ответ: Исправьте код
хаха и правдо незаметил ну лано мож кто потом посмотрит понадобиться=))));)
если считаете,что я тупой то извините |
Ответ: Исправьте код
|
Ответ: Исправьте код
Вложений: 1
вот тебе это поможет
Вложение 10795 |
Ответ: Исправьте код
Очень прошу помощи. Вот код:
Graphics3d 0,0,32,1 setbuffer backbuffer() cam=createcamera() repeat Update() renderworld flip until keyhit(1) function Update() end function подправьте его пожалуйста, чтоб там мужики бегали, стреляли... |
Часовой пояс GMT +4, время: 15:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot