| 
				
				Вопросы
				 | 
 | 
| Zegy | Дата: Воскресенье, 21.08.2011, 15:23 | Сообщение # 436 |  
| 
 Сержант 
Группа: Пользователи 
Сообщений: 24 
Награды:  0 
Репутация:  0 
Статус: Offline 
 
 | нет мне нужно просто чтоб шифт комбинировался с клавишами wasd .Пробовал как в мануале написано, но выбивает кейеррор либо если заношу в кеймап, то по-любому без результатов.Может я что-то не то делаю.
 |  
|   | 
 |    | 
| serg-kkz | Дата: Воскресенье, 21.08.2011, 15:28 | Сообщение # 437 |  
 Генерал-полковник 
Группа: Модераторы 
Сообщений: 803 
Награды:  3 
Репутация:  18 
Статус: Offline 
 
 | Zegy, в том то и вопрос, для чего комбинация? для изменения скорости или чтоб без нажатия Shift клавиши WSAD не работали.
  ООП  -   
 
 Сообщение отредактировал serg-kkz - Воскресенье, 21.08.2011, 15:30  |  
|   | 
 |    | 
| Zegy | Дата: Воскресенье, 21.08.2011, 15:31 | Сообщение # 438 |  
| 
 Сержант 
Группа: Пользователи 
Сообщений: 24 
Награды:  0 
Репутация:  0 
Статус: Offline 
 
 | чтобы шифт не работал без нажатия wasd
 |  
|   | 
 |    | 
| serg-kkz | Дата: Воскресенье, 21.08.2011, 15:42 | Сообщение # 439 |  
 Генерал-полковник 
Группа: Модераторы 
Сообщений: 803 
Награды:  3 
Репутация:  18 
Статус: Offline 
 
 | Quote (Zegy) чтобы шифт не работал без нажатия wasd     Хм... странно... но в этом случае нужно его отключать а не комбинировать. Ты наверное не правильно реализовал код перемещения и по этому такие заморочки нужны теперь. Опиши как у тебя реализованно движение.
  ООП  -   
 |  
|   | 
 |    | 
| Zegy | Дата: Воскресенье, 21.08.2011, 15:56 | Сообщение # 440 |  
| 
 Сержант 
Группа: Пользователи 
Сообщений: 24 
Награды:  0 
Репутация:  0 
Статус: Offline 
 
 | Я когда зажимаю допустим а+шифт, то шифт работает только с а 
   Code class Control(DirectObject):         def __init__(self):             self.speed = 10             self.accel = 10             self.heading = 180             self.pitch = 0             self.forward = Vec3(0,2,0)             self.backward = Vec3(0,-1,0)             self.left = Vec3(-1,0,0)             self.right = Vec3(1,0,0)                               taskMgr.add(self.cameraTask, "Camera Task")             taskMgr.add(self.moveTask, "Move Task")                            base.disableMouse()             props = WindowProperties()             props.setCursorHidden(True)                base.win.requestProperties(props) 
             self.room = loader.loadModel("models/abstractroom")             self.room.reparentTo(render) 
             self.player = render.attachNewNode("attach_Player")             base.camera.reparentTo(self.player)                        self.keyMap = {"w" : False,                            "a" : False,                            "s" : False,                            "d" : False,                            "shift" : False}             self.accept("w", self.setKey, ["w", True])             self.accept("a", self.setKey, ["a", True])             self.accept("s", self.setKey, ["s", True])             self.accept("d", self.setKey, ["d", True])             self.accept("shift", self.setKey, ["shift", True])             self.accept("w-up", self.setKey, ["w", False])             self.accept("a-up", self.setKey, ["a", False])             self.accept("s-up", self.setKey, ["s", False])             self.accept("d-up", self.setKey, ["d", False])             self.accept("shift-up", self.setKey, ["shift", False]) 
         def setKey(self,key,value):             self.keyMap[key] = value 
         def moveTask(self,task):             dt = globalClock.getDt()             if(self.keyMap["w"] == True):                 self.player.setPos(self.player,self.forward*self.speed*dt)             if(self.keyMap["a"] == True):                 self.player.setPos(self.player,self.left*self.speed*dt)             if(self.keyMap["s"] == True):                 self.player.setPos(self.player,self.backward*self.speed*dt)             if(self.keyMap["d"] == True):                 self.player.setPos(self.player,self.right*self.speed*dt)             if(self.keyMap["shift"] == True):                 if self.speed > 25:                     self.speed = 25                 else:                     self.speed += (self.accel*dt)             if(self.keyMap["shift"] == False):                 if self.speed < 10:                     self.speed = 10                 else:                     self.speed -= (self.accel*dt)             if(dt>.20):                 return task.cont             return task.cont  
 
 Сообщение отредактировал Zegy - Воскресенье, 21.08.2011, 17:47  |  
|   | 
 |    | 
| serg-kkz | Дата: Воскресенье, 21.08.2011, 16:48 | Сообщение # 441 |  
 Генерал-полковник 
Группа: Модераторы 
Сообщений: 803 
Награды:  3 
Репутация:  18 
Статус: Offline 
 
 | Zegy, не знаю угадал или нет, но вот поправил. 
   Code import direct.directbase.DirectStart        from direct.showbase.DirectObject import DirectObject   from pandac.PandaModules import *  
   class Control(DirectObject):         def __init__(self):                    self.speed_gl = 10            self.SpeedMult = 2 
            taskMgr.add(self.moveTask, "Move Task")                          base.disableMouse()             props = WindowProperties()             props.setCursorHidden(True)              base.win.requestProperties(props) 
            self.room = loader.loadModel("models/abstractroom")             self.room.reparentTo(render)  
            self.player = render.attachNewNode("attach_Player")             base.camera.reparentTo(self.player)                      self.keyMap = {"w" : False,                            "a" : False,                            "s" : False,                            "d" : False,                            "shift" : False}             self.accept("w", self.setKey, ["w", True])             self.accept("a", self.setKey, ["a", True])             self.accept("s", self.setKey, ["s", True])             self.accept("d", self.setKey, ["d", True])             self.accept("shift", self.setKey, ["shift", True])             self.accept("w-up", self.setKey, ["w", False])             self.accept("a-up", self.setKey, ["a", False])             self.accept("s-up", self.setKey, ["s", False])             self.accept("d-up", self.setKey, ["d", False])             self.accept("shift-up", self.setKey, ["shift", False])  
        def setKey(self,key,value):             self.keyMap[key] = value  
        def moveTask(self,task):             dt = globalClock.getDt()            speed = self.speed_gl            if(self.keyMap["shift"] == True):                speed = self.speed_gl*self.SpeedMult            if(self.keyMap["w"] == True):                 self.player.setPos(self.player.getPos() + (0, dt*(speed+1), 0))            if(self.keyMap["a"] == True):                 self.player.setPos(self.player.getPos() - (dt*speed, 0, 0))            if(self.keyMap["s"] == True):                 self.player.setPos(self.player.getPos() - (0, dt*speed, 0))            if(self.keyMap["d"] == True):                 self.player.setPos(self.player.getPos() + (dt*speed, 0, 0))            return task.cont   Control()   run()  
  ООП  -   
 |  
|   | 
 |    | 
| serg-kkz | Дата: Воскресенье, 21.08.2011, 21:09 | Сообщение # 442 |  
 Генерал-полковник 
Группа: Модераторы 
Сообщений: 803 
Награды:  3 
Репутация:  18 
Статус: Offline 
 
 | Zegy, я вроде окончательно понял, о чем ты, проверь такое решение. И сообщи, решен ли твой вопрос. 
   Code import direct.directbase.DirectStart        from direct.showbase.DirectObject import DirectObject   from pandac.PandaModules import *  
   class Control(DirectObject):         def __init__(self):                    self.speed_gl = 10 
            taskMgr.add(self.moveTask, "Move Task")                          base.disableMouse()             props = WindowProperties()             props.setCursorHidden(True)              base.win.requestProperties(props) 
            self.room = loader.loadModel("models/abstractroom")             self.room.reparentTo(render)  
            self.player = render.attachNewNode("attach_Player")             base.camera.reparentTo(self.player)                      self.keyMap = {"w" : False,                            "a" : False,                            "s" : False,                            "d" : False,                            "shift" : False}                                        self.accept("shift-w", self.setKey, ["w", True])            self.accept("w", self.setKey, ["w", True])                        self.accept("shift-a", self.setKey, ["a", True])            self.accept("a", self.setKey, ["a", True])                        self.accept("shift-s", self.setKey, ["s", True])            self.accept("s", self.setKey, ["s", True])                        self.accept("shift-d", self.setKey, ["d", True])            self.accept("d", self.setKey, ["d", True])                         self.accept("w-up", self.setKey, ["w", False])            self.accept("a-up", self.setKey, ["a", False])            self.accept("s-up", self.setKey, ["s", False])            self.accept("d-up", self.setKey, ["d", False])                        self.accept("shift", self.setKey, ["shift", True])            self.accept("shift-up", self.setKey, ["shift", False]) 
        def setKey(self,key,value):             self.keyMap[key] = value  
        def moveTask(self, task):                   dt = globalClock.getDt()           speed = self.speed_gl 
           if(self.keyMap["w"] == True):               self.player.setPos(self.player.getPos() + (0, dt*speed, 0))               if(self.keyMap["shift"] == True):                   self.player.setPos(self.player.getPos() + (0, dt*speed*2, 0))                              if(self.keyMap["a"] == True):                self.player.setPos(self.player.getPos() - (dt*speed, 0, 0))               if(self.keyMap["shift"] == True):                   self.player.setPos(self.player.getPos() - (dt*speed*2, 0, 0))                           if(self.keyMap["s"] == True):                self.player.setPos(self.player.getPos() - (0, dt*speed, 0))               if(self.keyMap["shift"] == True):                   self.player.setPos(self.player.getPos() - (0, dt*speed*2, 0))                              if(self.keyMap["d"] == True):                self.player.setPos(self.player.getPos() + (dt*speed, 0, 0))               if(self.keyMap["shift"] == True):                   self.player.setPos(self.player.getPos() + (dt*speed*2, 0, 0))                              return task.cont   Control()   run()  
  ООП  -   
 |  
|   | 
 |    | 
| Zegy | Дата: Воскресенье, 21.08.2011, 21:34 | Сообщение # 443 |  
| 
 Сержант 
Группа: Пользователи 
Сообщений: 24 
Награды:  0 
Репутация:  0 
Статус: Offline 
 
 | Да!Спасибо огромное!
 |  
|   | 
 |    |