Path: blob/main/RSDKv4/NativeObjects/BackButton.cpp
817 views
#include "RetroEngine.hpp"12void BackButton_Create(void *objPtr)3{4RSDK_THIS(BackButton);5self->textureCircle = LoadTexture("Data/Game/Menu/Circle.png", TEXFMT_RGBA4444);67int texture = LoadTexture("Data/Game/Menu/Intro.png", TEXFMT_RGBA4444);8self->meshBack = LoadMesh("Data/Game/Models/BackArrow.bin", texture);9self->x = 0.0;10self->y = 16.0;11self->z = 160.0;12self->r = 0xFF;13self->g = 0xFF;14self->b = 0x00;15}16void BackButton_Main(void *objPtr)17{18RSDK_THIS(BackButton);1920if (self->visible) {21if (self->scale < 0.2) {22self->scale += ((0.25 - self->scale) / ((60.0 * Engine.deltaTime) * 16.0));23if (self->scale > 0.2)24self->scale = 0.2;25}26SetRenderBlendMode(RENDER_BLEND_ALPHA);27SetRenderVertexColor(self->r, self->g, self->b);28RenderImage(self->x, self->y, self->z, self->scale, self->scale, 256.0, 256.0, 512.0, 512.0, 0.0, 0.0, 255, self->textureCircle);29SetRenderVertexColor(0xFF, 0xFF, 0xFF);30SetRenderBlendMode(RENDER_BLEND_NONE);3132self->angle -= (Engine.deltaTime + Engine.deltaTime);33if (self->angle < -M_PI_2)34self->angle += M_PI_2;3536NewRenderState();37MatrixScaleXYZF(&self->renderMatrix, (cosf(self->angle) * 0.35) + 1.25, (sinf(self->angle) * 0.35) + 1.25, 1.0);38MatrixTranslateXYZF(&self->matrixTemp, self->x, self->y, self->z - 8.0);39MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);40SetRenderMatrix(&self->renderMatrix);41RenderMesh(self->meshBack, MESH_NORMALS, true);42SetRenderMatrix(NULL);43}44}454647