| denis79513 | Дата: Среда, 13 Октября 2010, 13:09 | Сообщение # 1 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Я начал изучать язык Blitz3D так как он не требует серьезных навыков, прост в изучении и дает неплохие возможности, превым делом, решил реализовать управление автомобилем, как обычно создается тело (машина (cub)), плоскось (plane), и освещение с камерой.   В моем случае, Матина, то есь куб имеет переменную car.   Самое начало, делаем так, как обычно:   Code     If KeyDown(200) MoveEntity car,0,0,.1 (клавиши вверх - движение вперед)    If KeyDown(208) MoveEntity car,0,0,-.1 (клавиша вниз- движение назад)    If KeyDown(203) TurnEntity car,0,1,0 (клавиша влево - поворот влево)    If KeyDown(205) TurnEntity car,0,-1,0 (клавиша вправо - поворот вправо)        С передним ходом все OK. нажимаем влево, вперед - движется налево и вперед.   Но дело в том, что возникают проблемы с задним ходом, то есть если игрок нажимает влево и назад, то машина должна двигаться влево, назад, а здесь она движется вправо, назад.   Поэтому я решил ввести переменную, которая будет стоять вместо градусов поворота. Например Cr:   Code    If KeyDown(200) MoveEntity car,0,0,.cr        Тогда нам нужно прописать, что если игрок нажимает (вперед) + (влево или вправо) то cr=1   а если он нажимает (вназадеред) + (влево или вправо) то cr=-1 (то есть в обратную сторону).   Полностью мой код теперь выглядит так:   Code    Graphics3D 1280,1024,32,1 
   SetBuffer BackBuffer() 
   cr%=5   lit=CreateLight()   car=CreateCube()   EntityColor car,0,255,0   cam=CreateCamera(car)   plan=CreatePlane(10) 
   EntityColor plan,0,0,255 
   PositionEntity plan,0,-1,5   PositionEntity cam,0,3,-7 
   If     KeyDown(208)   And    KeyDown(203)    Or    KeyDown(205)   Then    cr=5   Else    cr=-5   EndIf 
   Repeat    If KeyDown(200) MoveEntity car,0,0,.1    If KeyDown(208) MoveEntity car,0,0,-.1    If KeyDown(203) TurnEntity car,0,1,0    If KeyDown(205) TurnEntity car,0,-1,0   UpdateWorld   RenderWorld   Flip   Until KeyHit(1)   End        Помогите найти ошибку, при попытке запуска, вылетает: "Expecting Expression" заранее спасибо!
 |  
| 
 | 
 |    | 
| Trelan | Дата: Среда, 13 Октября 2010, 14:14 | Сообщение # 2 |  
 
участник 
Сейчас нет на сайте 
 
 | Ошибка в этом:   Quote (denis79513) If   KeyDown(208)   And   KeyDown(203)   Or   KeyDown(205)   Then   cr=5   Else   cr=-5   EndIf     Чтобы ее не было сделайте так:   If KeyDown(208) And KeyDown(203) Or KeyDown(205) Then   cr=5   Else   cr=-5   EndIf 
 
    Мои игры:   Planet Lander   Escape From Hospital (в разработке) 
 
 Сообщение отредактировал Trelan - Среда, 13 Октября 2010, 14:17  |  
| 
 | 
 |    | 
| denis79513 | Дата: Среда, 13 Октября 2010, 18:18 | Сообщение # 3 |  
| 
 был не раз 
Сейчас нет на сайте 
 
 | Большое спасибо.
 |  
| 
 | 
 |    |