mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-09-20 21:32:20 +02:00
aa694be6f6
This change introduces the standard gamepad layout. This changes adds these APIs: * func HasGamepadStandardLayoutMapping * func IsGamepadStandardButtonPressed * func GamepadStandardAxisValue * type StandardGamepadButton * type StandardGamepadAxis The standard gamepad layout is based on the web standard. See https://www.w3.org/TR/gamepad/#remapping. On desktops, the SDL's gamecontrllerdb.txt is used. If the gamepad is listed in the text file, the mapping works. GLFW's mapping featrue is not used. On browsers, the property of a gamepad 'mapping' is used. When the mapping value is 'standard', the gamepad is recognized to have the standard mapping. On mobiles, the implementation is still WIP. Updates #1557
40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
// Copyright 2019 The Ebiten Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package driver
|
|
|
|
type GamepadID int
|
|
|
|
type TouchID int
|
|
|
|
type Input interface {
|
|
AppendInputChars(runes []rune) []rune
|
|
AppendGamepadIDs(gamepadIDs []GamepadID) []GamepadID
|
|
AppendTouchIDs(touchIDs []TouchID) []TouchID
|
|
CursorPosition() (x, y int)
|
|
GamepadSDLID(id GamepadID) string
|
|
GamepadName(id GamepadID) string
|
|
GamepadAxisValue(id GamepadID, axis int) float64
|
|
GamepadAxisNum(id GamepadID) int
|
|
GamepadButtonNum(id GamepadID) int
|
|
HasGamepadStandardLayoutMapping(id GamepadID) bool
|
|
IsGamepadButtonPressed(id GamepadID, button GamepadButton) bool
|
|
IsKeyPressed(key Key) bool
|
|
IsMouseButtonPressed(button MouseButton) bool
|
|
IsStandardGamepadButtonPressed(id GamepadID, button StandardGamepadButton) bool
|
|
StandardGamepadAxisValue(id GamepadID, button StandardGamepadAxis) float64
|
|
TouchPosition(id TouchID) (x, y int)
|
|
Wheel() (xoff, yoff float64)
|
|
}
|