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)
81 lines
3.3 KiB
Python
81 lines
3.3 KiB
Python
"""
|
|
|
|
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()
|