Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 29.08.2007, 05:11   #1
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Новичёк не понимает... Помогите.

У меня проблема с игрой, я перечитал весь ворум но вобще запутался,
Я хочу чтоб моя машинка начинала набирать скорость постепенно и также сбавляла скорость, а не при нажатии кнопки она двигается, а при опускании становится колом.
Если это можно организовать при помощи команд, то пожалуйста обьясните внятно каие команды куда ставить... А то я вобще запутался. Не откажите в помощи.
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 10:43   #2
Maestro
ПроЭктировщик
 
Регистрация: 25.07.2007
Сообщений: 151
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Global moveZ#

    ; create car
    car = CreateCube()

    ; create camera
    campivot = CreatePivot()
    cam = CreateCamera(campivot)
    PositionEntity cam,0,120,0
    PointEntity  cam,campivot

    ;create light
    lit = CreateLight(campivot)
    PositionEntity lit,0,60,0
    PointEntity lit,campivot

Repeat

MoveEntity car,0,0,moveZ#

If KeyDown(17) Then
    moveZ = moveZ + .02
Else
    moveZ = moveZ - .01
EndIf
If moveZ < 0 Then MoveZ = 0
If KeyDown(30) Then TurnEntity car,0,2,0
If KeyDown(32) Then TurnEntity car,0,-2,0

UpdateWorld()
RenderWorld()

Flip 
Until KeyHit(1)
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 12:35   #3
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
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]

Вроде всё описал... Гг
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 12:41   #4
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

If KeyDown(20 Then ;Если нажата стрелка вниз
If Speed > 0 Then Speed = Speed - .02 ;И если скорость больше 0 , то уменьшаем скорость
EndIf

можно зделать задний ход с максимальной скоростью 5:
If KeyDown(20 Then ;Если нажата стрелка вниз
If Speed > -5 Then Speed = Speed - .02 ;И если скорость больше -5 , то уменьшаем скорость
EndIf
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 12:47   #5
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
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(20 Then
If Speed > -5 Then Speed = Speed - .02 ;Если скорость больше -5 , то уменьшаем ее...
EndIf
[/blitz]
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:00   #6
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

Спасибо всем! Тепер я всё понял.
А можно такойже вопрос тока насчёт спидометра.?
Хотябы программно
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:13   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Новичёк не понимает... Помогите.

Ограничения будут не точны, хоть и наверное более производительны, хотя при миллионе таких операций за цикл только будет разница.
Лучше сперва извенять скорость а только потом проверять если большие или меньше, ставить соответствующее. Но это зависит от переменной на сколько увеличивается скорость. И это так, тонкости
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:17   #8
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

А можно такойже вопрос тока насчёт спидометра.?
т.е. ты хочеш что бы у тебя стрелка показывала какая скорость ??

а если без стрелки то просто: text 20,20,"скорость "+speed
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:36   #9
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Новичёк не понимает... Помогите.

Сообщение от IGR
т.е. ты хочеш что бы у тебя стрелка показывала какая скорость ??

а если без стрелки то просто: text 20,20,"скорость "+speed
Мне пожалуйста как по легче и поточнее, но я предупреждаю что я со спрайтами не очень дружу.
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:49   #10
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

легче и намного производительней будет вывести значение скорости ввиде текста как я тебе показал , но если ты хочеш зделать спидометр, то создавай стрелку и поварачевай ее в зависимости от значения скорости !!
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 17:58   #11
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Новичёк не понимает... Помогите.

Cheetos
http://www.boolean.name/showthread.php?t=3940
Это про то, как сделать спидометр.
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 18:05   #12
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Смущение Re: Новичёк не понимает... Помогите.

Сообщение от IGR
легче и намного производительней будет вывести значение скорости ввиде текста как я тебе показал , но если ты хочеш зделать спидометр, то создавай стрелку и поварачевай ее в зависимости от значения скорости !!
Чего-то не получается ввиде текста, а можеш чуть-чуть по понятней(ну что куда ставить и писать). Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 18:16   #13
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Новичёк не понимает... Помогите.

напиши после renderworld()
и перед flip 0
это:
text 20,20,"speed :"+speed

получится так:
renderworld()
text 20,20,"speed :"+speed
flip 0
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 18:57   #14
Cheetos
Оператор ЭВМ
 
Регистрация: 23.08.2007
Сообщений: 27
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Re: Новичёк не понимает... Помогите.

Сообщение от IGR
напиши после renderworld()
и перед flip 0
это:
text 20,20,"speed :"+speed

получится так:
renderworld()
text 20,20,"speed :"+speed
flip 0
Впринципе появилась надпись "speed:0"
но там где 0 ни чего не показывает...(((
(Offline)
 
Ответить с цитированием
Старый 29.08.2007, 18:58   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Новичёк не понимает... Помогите.

Cheetos, тогда перед Graphics3D напиши: Global speed#
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите новичку срен27 JAVA Micro Edition 7 18.11.2013 19:49
Помогите новичку! Cuatro FAQ 1 07.05.2009 03:02
помогите новичку с b3d falcon Blitz3D 60 09.09.2008 16:33
Помогите новичку ejjj Основной форум 8 23.01.2007 17:09
Помогите новичку _maxim_ 3D-программирование 7 17.09.2006 15:48


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com