![]() |
Новичёк не понимает... Помогите.
У меня проблема с игрой, я перечитал весь ворум но вобще запутался,
Я хочу чтоб моя машинка начинала набирать скорость постепенно и также сбавляла скорость, а не при нажатии кнопки она двигается, а при опускании становится колом. Если это можно организовать при помощи команд, то пожалуйста обьясните внятно каие команды куда ставить... А то я вобще запутался.:''(( Не откажите в помощи. |
Re: Новичёк не понимает... Помогите.
Код:
Graphics3D 800,600,32,2 |
Re: Новичёк не понимает... Помогите.
Создай переменную Speed#
В цикле ставь команду MoveEntity car , 0 , 0 , Speed. Эта команда у тебя будет посмтоянно двигать твой car на speed вперёд... И там, где у тебя функции нажатия клавиш измени на [blitz] If KeyDown(200) Then Speed = Speed + .02 ;Если нажата стрелка вверх, то прибавляем скорость Else Speed = Speed - .01 ;Если не нажата, то уменьшаем... EndIf If KeyDown(208) Then ;Если нажата стрелка вниз If Speed > 0 Then Speed = Speed - .02 ;И если скорость больше 0 , то уменьшаем скорость EndIf [/blitz] Вроде всё описал... Гг |
Re: Новичёк не понимает... Помогите.
Цитата:
можно зделать задний ход с максимальной скоростью 5: If KeyDown(208) Then ;Если нажата стрелка вниз If Speed > -5 Then Speed = Speed - .02 ;И если скорость больше -5 , то уменьшаем скорость EndIf |
Re: Новичёк не понимает... Помогите.
Ну да.. чтобы задний ход был... и, наверно, надо поставить ограничение.. ща исправлю...
==>>><<<== Исправил... [blitz] If KeyDown(200) Then If Speed< 40 Then Speed = Speed + .02 ; Если скорость меньше 40 (то бишь максимальной.. гг) , то прибавляем её... Else If Speed > 0 Then Speed = Speed - .01 ; Если скорость больше 0 и клавиша не нажата, то постепенно уменьшаем скорость... EndIf If KeyDown(208) Then If Speed > -5 Then Speed = Speed - .02 ;Если скорость больше -5 , то уменьшаем ее... EndIf [/blitz] |
Re: Новичёк не понимает... Помогите.
Спасибо всем! Тепер я всё понял.
А можно такойже вопрос тока насчёт спидометра.? Хотябы программно |
Re: Новичёк не понимает... Помогите.
Ограничения будут не точны, хоть и наверное более производительны, хотя при миллионе таких операций за цикл только будет разница.
Лучше сперва извенять скорость а только потом проверять если большие или меньше, ставить соответствующее. Но это зависит от переменной на сколько увеличивается скорость. И это так, тонкости ;) |
Re: Новичёк не понимает... Помогите.
Цитата:
а если без стрелки то просто: text 20,20,"скорость "+speed |
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
легче и намного производительней будет вывести значение скорости ввиде текста как я тебе показал , но если ты хочеш зделать спидометр, то создавай стрелку и поварачевай ее в зависимости от значения скорости !!
|
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
напиши после renderworld()
и перед flip 0 это: text 20,20,"speed :"+speed получится так: renderworld() text 20,20,"speed :"+speed flip 0 |
Re: Новичёк не понимает... Помогите.
Цитата:
но там где 0 ни чего не показывает...((( |
Re: Новичёк не понимает... Помогите.
Cheetos, тогда перед Graphics3D напиши: Global speed#
|
Re: Новичёк не понимает... Помогите.
MoKa, а чё неглобальные не выводит ??
|
Re: Новичёк не понимает... Помогите.
IGR Ну я подумал что у него изменение переменной speed в функции, но тогда бы машинка не ездила бы вообще.
|
Re: Новичёк не понимает... Помогите.
Нет, не помогает.... Может мне написать код? Может я там что-то не правильно сделал?
Если что, то я использовал код который мне написал Maestro. |
Re: Новичёк не понимает... Помогите.
Cheetos, говорю же, посмотри тут:
http://www.boolean.name/showthread.php?t=3940 Там рассказывается, как сделать спидометр. |
Re: Новичёк не понимает... Помогите.
Цитата:
Я со спрайтами не дружу, я же говорил(тоесть писал...) |
Re: Новичёк не понимает... Помогите.
Вот мой код помогите исправить или добавить что нить для правильной работы:
Цитата:
|
Re: Новичёк не понимает... Помогите.
Люди, мне что никто не поможет? Пожалуйста....
|
Re: Новичёк не понимает... Помогите.
По ходу дела мы его совсем запутали.. оО
Так... ладно... буду исправлять.... только скажу, у тебя где загрузка ресурсов всё норм? Как я понял, машинка у тя это q ... [blitz] Graphics3D 1024,768,32,1 SeedRnd MilliSecs() SetBuffer BackBuffer() Global speed# Const Typecub=1,Typecab=2 Collisions Typecub,Typecab,2,1 ;Этот участок кода я не трогал lit=CreateLight() pln=CreatePlane() tex=LoadTexture("file/GRASS2.jpg") EntityTexture pln,tex ScaleTexture tex,50,50 cub=LoadMesh("file/BA-64.3DS") ScaleEntity cub,0.05,0.05,0.05 ScaleEntity cub,1.3,1.3,1.3 CameraViewport cam,0,0,1024,384 PositionEntity cub,-4,0,0 EntityType cub,Typecub PositionEntity cub,0,0,0 tix=LoadTexture("file/BA-64_diff.tga") EntityTexture cub,tix cab=LoadMesh("file/Bugatti.3DS") com=CreateCamera(cab) CameraViewport com,0,384,1024,384 PositionEntity com,230,140,0 RotateEntity com,25,90,0 EntityType cab,Typecab ScaleEntity cab,0.05,0.05,0.05 RotateEntity cab,0,270,0 PositionEntity cab,4,0.68,0 PointEntity cam,cub a=LoadMesh("file/telega.3DS") b=LoadTexture("file/wood.jpg") EntityTexture a,b ScaleEntity a,0.025,0.025,0.025 RotateEntity a,0,90,0 PositionEntity a,-6,0.6,2 c=LoadMesh("file/House.3DS") ScaleEntity c,0.025,0.025,0.025 PositionEntity c,-13,6.2,0 RotateEntity c,0,90,0 sound=LoadSound("file/Safri_Duo_03_-_A_Gusta.mp3") LoopSound(sound) PlaySound(sound) q=LoadMesh("file/BMW3ds.3DS") ScaleEntity q,0.2,0.2,0.2 PositionEntity q,8,0.6,0 RotateEntity q,0,90,0 cam=CreateCamera(q) ;Правда тут заменил, чтобы камера за машынкой была PositionEntity cam,0,3,-10 ;И тут ;--------------------------------------------------------------- Repeat ;Тут же у тебя был ещё код maestro If KeyDown(200) Then If Speed< 40 Then Speed = Speed + .02 Else If Speed> 0 Then Speed= Speed- .01 EndIf If KeyDown(208)Then If Speed> -5 Then Speed= Speed- .02 EndIf ;тут я убрал код... If KeyDown(203) TurnEntity q,0,2,0 If KeyDown(205)TurnEntity q,0,-2,0 MoveEntity q,0,0,Speed UpdateWorld RenderWorld Text 20,20,"типа скорость: :"+speed Flip Until KeyHit(1) End [/blitz] Я заменил полностью главный цикл игры.. убрал , так сказать то, что не понял... гг... если надо, восстанови... также убрал кучу лишнего.. в общем. там чуть-чуть комментировал... хых, надеюсь, ты разберёшься...:@:@:@ И ещё.. зачем ты по текстуришь два раза? если на модели уже в максе наложена текстура, и если при загрузки блитзом рядом с моделью будет лежать её текстура, то в игре тектсруа уже будет натянута на модель... У тебя как-то сложно код читается из-за загрузки.. гг... не проще ли было просто в максе разместить все модель где и как надо? а затем просто импортировать общую карту? Оо |
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
to avel : дык напиши пост про спидометр, а то я там такого не нашел !!
|
Re: Новичёк не понимает... Помогите.
2IGR а про спидометр уже написали:
http://www.boolean.name/showthread.php?t=3940 но если надо, ок, напишу. |
Re: Новичёк не понимает... Помогите.
to avel : я видел, но он (Cheetos) же написал, что не понял етого примера !!
нужно еще доступней написать !! |
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
теперь q - это твоя тачка , а у второго человека ее вообще нет !!
|
Re: Новичёк не понимает... Помогите.
Вот допустим у тебя есть переменная speed#, от которой зависит скорость перемещения твоей машинки. Просто создай/загрузи картинку, которая будет у тебя индикатором скорости, тобишь стрелка, и поворачивай эту картинку за счет переменной speed#. А если стрелка будет не достаточно поворачиваться или наоборот, слишком быстро, то просто при повороте картинки умножай перменную speed# на нужное тебе значение(koef#). Значение будет вальироваться от 0 до 1 при уменьшении скорости вращения ,и от 1 до бесконечности(условно) при увеличении скорости вращения.
graphics3d ... ... img_strelka=loadimage("strelka.png",4) ... ;главный цикл repeat ... renderworld() if speed#>0 speed_rot#=speed#*0.1 rotateimage img_strelka, speed_rot# endif drawimage img_strelka, x, y, [frame] flip until keyhit(1) end |
Re: Новичёк не понимает... Помогите.
rotateimage это глюковато !!
лучше уже создать простой tynbnb ? привязать к камере в оприделенной позиции и его поварачевать: strelka = createcube(camera) scaleentity strelka,scl#,scl#*5,scl#; подбираем значения positionentity strelka x,y,z; подбираем значения потом в цыкле if speed#>0 speed_rot#=speed#*0.1 rotateentity strelka, speed_rot# endif |
Re: Новичёк не понимает... Помогите.
Тогда уж можно и биллбоардом сделать.
ЗЫЖ ашибочка: Не rotateentity strelka, speed_rot#, а :rotateentity strelka, 0,0,speed_rot# И еще надо использовать EntityOrder, так как другие объекты могут загородить стрелку, поэтому надо рендерить ее последней. Типо так EntityOrder strelka, 1000. |
Re: Новичёк не понимает... Помогите.
ну... я сделал так, как понял... надо было объяснить, для чего куча всякого текста ^_^ .. я сделал то, что понял...
|
Re: Новичёк не понимает... Помогите.
А почему когда я запускаю программу у меня пишет "Texture does not exist" и выделяет первые строчки по прикреплению текстуры к обьекту или размеру текстуры?
|
Re: Новичёк не понимает... Помогите.
положи текстуры в ту же папку где модель и всё будет работать !!
|
Re: Новичёк не понимает... Помогите.
Потому что тут приведены лишь куски кода, а то как из них собрать работающее приложение твоя задача. Тут главное понять что тебе не без усилий пытались объяснить, так что уж не обидь =)))
|
Re: Новичёк не понимает... Помогите.
Цитата:
просто это не работает переделаный код который дал мне Данил. |
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
сначала хотел исправить твой код, но потом посмотрел, сколько там типичных "новичковских" ошибок и решил написать свой. вот, тут все работает и прокомментировано, разбирайся:
Код:
Graphics3D 1024,768,32,1 |
Re: Новичёк не понимает... Помогите.
Цитата:
может надо Str ?? или вообще ненадо !! |
Re: Новичёк не понимает... Помогите.
Действительно... Cheetos, если мы будем ебе просто исправлять код, то ты так никогда не научишься... тебе надо понять код, а ты, как я вижу, не очень понимаешь, что делаешь .... Задавай вопросы, мы ответим, но ты должен не просто вписать код, ты должен его понять его...
Я нехочу тея обидеть... |
Re: Новичёк не понимает... Помогите.
Цитата:
СПАСИБО ВСЕМ КТО МНЕ ПОМОГАЕТ. |
Re: Новичёк не понимает... Помогите.
Цитата:
Я теперь более мение разобрался и начинаю толко доробатывать, ну там вставлють модели, и т.д. А вот у тебя стоит ограничение по скорости, а в какой команде ты меняеш ограничение? Если не трудно ответить. |
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
Ужс...
If KeyDown(200) Then If speed2#<= 0.5 (Это число отвечает за ограничение скорости.. также и смотри в других ifах Then speed2#=speed2#+0.01 EndIf EndIf |
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
Цитата:
Может, ты имеешь ввиду что ты хочешь указывать скорость в км/ч, а в Блитзе можно использовать только абстрактные блитзевые "юниты" ? Тогда тебе нужно знать сколько юнитов составляют 1 метр в игре. Что касается скорости, то тут однозначно надо использовать дельтатайминг, иначе на разных компах будет разная скорость машины. |
2Cheetos
насчет того что описал в своем посте impersonalis: там главное в конце. все до строчки SetBuffer BackBuffer() - это создание и размещение перед камерой спрайтов, которые ты можешь просто загрузить. cube=CreateCube() - это надо, чтобы показать, что спидометр круглый (прозрачный спрайт). тебе эта и следующая строчка не нужны. а вот это самое главное: RotateSprite SP1,-MilliSecs()*0.01 - здесь спрайт-стрелка крутится в зависимости от скорости. в данном случае вместо скорости просто время. замени MilliSecs()*0.01 на speed# и все! а вообще хочу еще раз отослать тебя в раздел FAQ и журнал Меркулова. ссылки у меня в подписи. 2IGR RotateImage - не глючная, но она сильно тормозная. Int() - у меня в коде нужен, чтобы выводилось не 3,659989 км/ч, а 4 км/ч 2Cheetos про ограничение скорости тебе Данил уже написал. можешь заменить это число на переменную, так будет удобнее подбирать нужную скорость. и просмотри получше форум, особенно разделы, которые я тебе рекомендовал в прошлом сообщении, потому что такие вопросы уже не раз задавались. |
Re: Новичёк не понимает... Помогите.
2Cheetos, как я понимаю, ты вообщем первый раз програмируешь? (ужс, как я ненавижу это слово...)
|
Re: Новичёк не понимает... Помогите.
Цитата:
|
Re: Новичёк не понимает... Помогите.
|
Цитата:
|
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
Бугога! Запускаю спамера.... :crazy:
|
Re: Новичёк не понимает... Помогите.
MoKa ,я долго парился со спамом в асю пока не наткнулся на Антибот-функцию. Теперь я про него забыл, кстати спам сохраняется в отдельный ботлог который я время от времени читаю. Чего только не спамят! Вот от этого я был просто пацталом:
Цитата:
|
Re: Новичёк не понимает... Помогите.
гг.. ко мне ваще спам не приходит... почти... два раза за всю жизнь.. какая-то тур кампания..
|
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
gmail.com рулит !! только плохо что нельзя сайт создать как на яндексе !!
|
Re: Новичёк не понимает... Помогите.
|
Re: Новичёк не понимает... Помогите.
Цитата:
А вот в программу CS4 (редактор карт для блица) можно всунуть обьекты из 3ds max? Мот кто знает? |
Re: Новичёк не понимает... Помогите.
никогда в этой проге не работал.. что она из себя представляет? оО
|
Re: Новичёк не понимает... Помогите.
Цитата:
|
Часовой пояс GMT +4, время: 09:28. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot