~fireclawthefox/panda3dcodecollection/trunk

« back to all changes in this revision

Viewing changes to character/extended Char controller/CameraThirdPerson.py

  • Committer: Fireclaw the Fox
  • Date: 2017-02-08 14:26:21 UTC
  • Revision ID: fireclawthefox@gmail.com-20170208142621-ljorcvore5ivwutx
Added gamepad support

- Panda3D's integrated gamepad support (preview, needs panda3d binaries build from input-overhaul branch)
- Added pyglet gamepad sample
- enhanced graphics for the extended Char controller demo

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
        the defined model and will correct the position if the cam is to close
68
68
        or to far away"""
69
69
 
 
70
        if self.parent.useKeyboard:
 
71
            cam_left = self.parent.isDown(self.parent.key_camera_left)
 
72
            cam_right = self.parent.isDown(self.parent.key_camera_right)
 
73
            cam_up = self.parent.isDown(self.parent.key_camera_up)
 
74
            cam_down = self.parent.isDown(self.parent.key_camera_down)
 
75
            cam_center = self.parent.isDown(self.parent.key_center_camera)
 
76
        elif self.parent.useGamepad:
 
77
            cam_left = self.parent.gamepad.getCamButton("arrow_left")
 
78
            cam_right = self.parent.gamepad.getCamButton("arrow_right")
 
79
            cam_up = self.parent.gamepad.getCamButton("arrow_up")
 
80
            cam_down = self.parent.gamepad.getCamButton("arrow_down")
 
81
            cam_center = self.parent.gamepad.getCenterCamState()
 
82
 
70
83
        # Camera Movement Updates
71
84
        camvec = self.cam_floater.getPos(render) - camera.getPos(render)
72
85
        camvec.setZ(0)
74
87
        camvec.normalize()
75
88
 
76
89
        # check if the camera should be centered
77
 
        if self.parent.isDown(self.parent.key_center_camera):
 
90
        if cam_center:
78
91
            # show a letter box when centering the camera
79
92
            if base.transitions.letterboxIval:
80
93
                if not base.transitions.letterboxIval.isPlaying():
110
123
                    camera.setX(camera, x)
111
124
                else:
112
125
                    camera.setX(camera, -x)
113
 
 
114
126
        # Move camera with the keyboard
115
 
        if self.parent.isDown(self.parent.key_camera_left):
 
127
        if cam_left:
116
128
            #                   LEFT
117
129
            x = self.parent.keyboard_cam_speed_x * dt
118
130
            if self.parent.keyboard_invert_horizontal:
119
131
                x = -x
120
132
            camera.setX(camera, -x)
121
 
        if self.parent.isDown(self.parent.key_camera_right):
 
133
        if cam_right:
122
134
            #                   RIGHT
123
135
            x = self.parent.keyboard_cam_speed_x * dt
124
136
            if self.parent.keyboard_invert_horizontal:
125
137
                x = -x
126
138
            camera.setX(camera, x)
127
 
        if self.parent.isDown(self.parent.key_camera_up):
 
139
        if cam_up:
128
140
            #                    UP
129
141
            z = self.parent.keyboard_cam_speed_y * dt
130
142
            if self.parent.keyboard_invert_vertical:
131
143
                z = -z
132
144
            camera.setZ(camera, z)
133
 
        elif self.parent.isDown(self.parent.key_camera_down):
 
145
        elif cam_down:
134
146
            #                   DOWN
135
147
            z = self.parent.keyboard_cam_speed_y * dt
136
148
            if self.parent.keyboard_invert_vertical: