This example uses python 3 with a Raylib (
https://www.raylib.com) wrapper (
https://pypi.org/project/raylib/) that uses CFFI API static bindings (this is the fastest approach, and keeps the code as close as possible to the original C, which I feel is the best approach when using a C library).
https://www.raylib.com/examples/web/core/loader.html?name=core_input_mouse_wheelThe original C example, edited for easier comparison:
#include "raylib.h"
int main(void)
{
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raylib [core] example - input mouse wheel");
int boxPositionY = screenHeight/2 - 40;
int scrollSpeed = 4; // Scrolling speed in pixels
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
while (!WindowShouldClose()) // Detect window close button or ESC key
{
boxPositionY -= (GetMouseWheelMove()*scrollSpeed);
BeginDrawing();
ClearBackground(RAYWHITE);
DrawRectangle(screenWidth/2 - 40, boxPositionY, 80, 80, MAROON);
DrawText("Use mouse wheel to move the cube up and down!", 10, 10, 20, GRAY);
DrawText(FormatText("Box position Y: %03i", boxPositionY), 10, 40, 20, LIGHTGRAY);
EndDrawing();
}
CloseWindow(); // Close window and OpenGL context
return 0;
}
The Python version:
from raylib.static import *
screenWidth = 800
screenHeight = 450
InitWindow(screenWidth, screenHeight, b"raylib [core] example - input mouse wheel")
boxPositionX = screenWidth/2 - 40
boxPositionY = screenHeight/2 - 40
scrollSpeed = 4
SetTargetFPS(60)
while not WindowShouldClose():
boxPositionY -= GetMouseWheelMove()*scrollSpeed
BeginDrawing()
ClearBackground(RAYWHITE)
DrawRectangle(int(boxPositionX), int(boxPositionY), 80, 80, MAROON)
DrawText(b"Use mouse wheel to move the cube up and down!", 10, 10, 20, LIGHTGRAY)
yCoord="Box position Y: {}".format(int(boxPositionY))
DrawText(yCoord.encode('ascii'), 10, 40, 20, LIGHTGRAY)
EndDrawing()
CloseWindow()
Tags: mouse wheel input