added texures srcrec dstrec example (#93)

added scarfy.png file
made texures_srcrec_dstrec.py stand to the Python API conventions(https://github.com/sDos280/raylib-python-cffi/blob/Conventions/PYTHON_API_CONVENTIONS.md)
This commit is contained in:
Dor Shapira 2022-10-26 01:48:50 +03:00 committed by GitHub
parent 2061585311
commit 7bfd7d2ea6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 81 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,81 @@
"""
raylib [textures] example - Texture source and destination rectangles
"""
# Import
# ------------------------------------------------------------------------------------
from pyray import *
# ------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------
# Program main entry point
# ------------------------------------------------------------------------------------
def main():
# Initialization
# ------------------------------------------------------------------------------------
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 450
init_window(SCREEN_WIDTH, SCREEN_HEIGHT, "raylib [textures] examples - texture source and destination rectangles")
# NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
scarfy = load_texture("resources/scarfy.png") # Texture loading
frame_width = scarfy.width / 6
frame_height = scarfy.height
# Source rectangle (part of the texture to use for drawing)
source_rec = Rectangle(0, 0, frame_width, frame_height)
# Destination rectangle (screen rectangle where drawing part of texture)
dest_rec = Rectangle(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, frame_width*2, frame_height*2)
# Origin of the texture (rotation/scale point), it's relative to destination rectangle size
origin = Vector2(frame_width, frame_height)
rotation = 0
set_target_fps(60) # Set our game to run at 60 frames-per-second
# ------------------------------------------------------------------------------------
# Main game loop
while not window_should_close(): # Detect window close button or ESC key
# Update
# ----------------------------------------------------------------------------------
rotation += 1
# ----------------------------------------------------------------------------------
# Draw
# ----------------------------------------------------------------------------------
begin_drawing()
clear_background(RAYWHITE)
# NOTE: Using DrawTexturePro() we can easily rotate and scale the part of the texture we draw
# sourceRec defines the part of the texture we use for drawing
# destRec defines the rectangle where our texture part will fit (scaling it to fit)
# origin defines the point of the texture used as reference for rotation and scaling
# rotation defines the texture rotation (using origin as rotation point)
draw_texture_pro(scarfy, source_rec, dest_rec, origin, rotation, WHITE)
draw_line(int(dest_rec.x), 0, int(dest_rec.x), SCREEN_HEIGHT, GRAY)
draw_line(0, int(dest_rec.y), SCREEN_WIDTH, int(dest_rec.y), GRAY)
draw_text("(c) Scarfy sprite by Eiden Marsal", SCREEN_WIDTH - 200, SCREEN_HEIGHT - 20, 10, GRAY)
end_drawing()
# ----------------------------------------------------------------------------------
# De-Initialization
# ----------------------------------------------------------------------------------
close_window() # Close window and OpenGL context
# ----------------------------------------------------------------------------------
# Execute the main function
if __name__ == '__main__':
main()