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

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

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

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

Ответ
 
Опции темы
Старый 03.07.2015, 20:15   #1
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Условия не работают правильно. В чём может быть причина?

Приветствую.
Есть код, где идут проверки на нажатия клавиш. И там подусловия, т.к как останавливать звуки я не знаю. где:
если x или y игрока превышает предел, или наоборот меньше нуля. так как используется else if, то else происходить должно если все условия не верны. тут же наоборот, условия не верны, а я иду вниз. по крайней мере, я слышу звук ходьбы, хоть x меньше 0 и я жму идти назад.
Помогите пожалуйста разобраться.
Вот весь код:
Graphics3D 800,600,16,2
SetBuffer BackBuffer()
player = CreateSphere()
cam = CreateCamera(player)
enemy = CreateCube()
PositionEntity enemy,0,0,20
stepsound = LoadSound("step.wav")
While Not KeyHit(1)
If KeyHit(200) Then
MoveEntity player,0,0,0.1
If EntityY#(player) > 40 Then
EntityY# = 40
Else If EntityX#(player) > 40 Then
EntityX# = 40
Else
PlaySound(stepsound)
EndIf
EndIf
If KeyHit(208) Then
MoveEntity player,0,0,-0.1
If EntityY#(player) < 0 Then
EntityY# = 0
Else If EntityX#(player) < 0 Then
EntityX# = 0
Else
PlaySound(stepsound)
EndIf
EndIf
If KeyHit(203) Then TurnEntity player,0,1,0
If KeyHit(205) Then TurnEntity player,0,-1,0
Wend
End
Заранее благодарен!

Последний раз редактировалось SBJoker, 03.07.2015 в 21:32.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Старый 03.07.2015, 20:17   #2
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Сделал ElseIf, тож не канает.
(Offline)
 
Ответить с цитированием
Старый 03.07.2015, 21:14   #3
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 585
Написано 326 полезных сообщений
(для 1,279 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

KeyHit замени на KeyDown
__________________
(Offline)
 
Ответить с цитированием
Старый 04.07.2015, 04:39   #4
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

А причем тут это?
мне и надо клавишу не даржать а просто нажимать.
И от этого нич не изменилось. всеравно условия не работают.
(Offline)
 
Ответить с цитированием
Старый 04.07.2015, 21:45   #5
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Ребят у помогите плз.
по поводу KeyDown, там нет таймера, который определяет сколько шагов в 1 сек делает допустим. и выходит так, что воспроизводиться звук оччччень много раз. вот сами попробуйте. но это от условий не зависит.
(Offline)
 
Ответить с цитированием
Старый 05.07.2015, 22:19   #6
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Интересно и как у тебя по KeyHit игрок будет двигаться? KeyHit выполнит однократное нажатие клавиши и все, далее даже если ты клавишу держишь условие уже выполнятся не будет так как это KeyHit, правильно тебе сказали заменить надо на KeyDown и условия у тебя не правильно выполнены. Заведи переменные. Как остановить звук есть в справке. Читай внимательней. Судя по темам ты не с одним языком не знаком.
__________________
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 06:43   #7
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

C#, pascal, python, Visual Basic.NET.
По поводу keyhit, но таймера я никак не сделаю, а при шагах мне зву кнужен. я и думаю жать однократно.
Условия вроде верны, или как я вот по другому, могу сделать условие больше x или y 50?
так:
if entiteX(player) > 50 or entityY(player)
я по любому не сделаю. т.к оно будет выполняться только тогда, когда 1 из них верно. А мне надо, что бы когда x равна пяти десяти делать x = 50, и так же с y. но никак не одновременно.
то есть, когда у меня будет x > 50, у меня и x и y будут равны 50. а так я не напишу
if entityX(player) > 50 then entityX(player) = 50
if entityY(player) > 50 then entityY(player) = 50
else
playSound(stepsound)
moveentity player,0,0,0.1
end if
т.к совершенно разные условия) ну то есть нужно это все в одном условии, чтоб для них else был одинаков
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 07:57   #8
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Вечером покажу как сделать. Но сомневаюсь я что ты с основами знаком
__________________

Последний раз редактировалось L-ee-X, 06.07.2015 в 09:34.
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 09:59   #9
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Держи бродяга
Graphics3D 800,600,16,2
SetBuffer BackBuffer
()

run=LoadSound(вСТАВЬ СВОЙ ЗВУК ХОДЬБЫ)
SoundVolume run0
LoopSound run
runChannel 
PlaySound (run)

Repeat
running
#= 0
UpdateWorld()
RenderWorld()

If 
KeyDown(17Then
running 
Rnd (0.350.75)
EndIf
If 
running 0
    ChannelPitch runChannel
Rnd (8000014000)
EndIf
ChannelVolume runChannelrunning


Until KeyHit
(1)

End 
__________________
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 11:47   #10
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Вопрос был не про звук, а про условия. Но всеравно спасибо.
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 12:05   #11
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

По крайней мере по твоему недокоду я понял только то, что ты хочешь сделать чтоб воспроизводился звук ходьбы при нажатие клавиши и при отпускание звук останавливался. Сам определись че надо то
__________________
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 13:35   #12
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

по поводу звуков я ответил просто в ответ про keydown.
Изначально был вопрос в коде где не правильное условие. там же я и описал алгоритм, а именно:
При движении, нужно проверить поочередно координаты x и y. если x > 50, то x = 50. если y > 50, то y = 50. в else т.е если условия не верны, воспроизводим звук и движемся.
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 13:37   #13
softcrasoft
Знающий
 
Регистрация: 21.03.2015
Сообщений: 262
Написано 6 полезных сообщений
(для 7 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

а то у меня получается так, что када он будет уператься в стенку не только будет проходить в нее, но и издавать звук шагов. 1. колиженс я не могу, т.к я его не понимаю и не привык, 2. кроме как elseif я не представляю себе как это сделать. а вроде как во всех бейсиках такая конструкция есть. по крайней мере припоминаю в VB.NET и PB.
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 13:40   #14
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Ну так очевидная ошибка в коде EntityY# = 40 это кто? И откуда он?
__________________
(Offline)
 
Ответить с цитированием
Старый 06.07.2015, 13:42   #15
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 454
Написано 117 полезных сообщений
(для 198 пользователей)
Ответ: Условия не работают правильно. В чём может быть причина?

Переменные задавай игроку.
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +1, время: 13:59.


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