Changing examples to use makefile
- Testing a modified version of the makefile from raylib Instead of multiple project files for examples. - Fixed readme example
This commit is contained in:
parent
a636ce12eb
commit
7008c67dfa
364 changed files with 979 additions and 9077 deletions
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<startup>
|
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
|
||||||
</startup>
|
|
||||||
</configuration>
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{2B152086-45AD-4DD2-A9A5-32AEC4FE608C}</ProjectGuid>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<RootNamespace>Examples</RootNamespace>
|
|
||||||
<AssemblyName>Examples</AssemblyName>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
||||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<ApplicationIcon>raylib-cs.ico</ApplicationIcon>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Examples\audio\audio_module_playing.cs" />
|
|
||||||
<Compile Include="Examples\audio\audio_music_stream.cs" />
|
|
||||||
<Compile Include="Examples\core\core_basic_window.cs" />
|
|
||||||
<Compile Include="Examples\physac\physics_demo.cs" />
|
|
||||||
<Compile Include="Examples\text\text_bmfont_ttf.cs" />
|
|
||||||
<Compile Include="Program.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="App.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="raylib-cs.ico" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Bindings\Bindings.csproj">
|
|
||||||
<Project>{a2b3bbc8-3d48-46dd-b3cf-263f554e4474}</Project>
|
|
||||||
<Name>Bindings</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup />
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,155 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Module playing (streaming)
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.5 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private const int MAX_CIRCLES = 64;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
Vector2 position;
|
|
||||||
float radius;
|
|
||||||
float alpha;
|
|
||||||
float speed;
|
|
||||||
Color color;
|
|
||||||
} CircleWave;
|
|
||||||
|
|
||||||
public static int audio_module_playing()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
SetConfigFlags(FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
Color colors[14] = { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK,
|
|
||||||
YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE };
|
|
||||||
|
|
||||||
// Creates ome circles for visual effect
|
|
||||||
CircleWave circles[MAX_CIRCLES];
|
|
||||||
|
|
||||||
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
circles[i].alpha = 0.0f;
|
|
||||||
circles[i].radius = GetRandomValue(10, 40);
|
|
||||||
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
|
|
||||||
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
|
|
||||||
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
|
|
||||||
circles[i].color = colors[GetRandomValue(0, 13)];
|
|
||||||
}
|
|
||||||
|
|
||||||
Music xm = LoadMusicStream("resources/mini1111.xm");
|
|
||||||
|
|
||||||
PlayMusicStream(xm);
|
|
||||||
|
|
||||||
float timePlayed = 0.0f;
|
|
||||||
bool pause = false;
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateMusicStream(xm); // Update music buffer with new stream data
|
|
||||||
|
|
||||||
// Restart music playing (stop and play)
|
|
||||||
if (IsKeyPressed(KEY_SPACE))
|
|
||||||
{
|
|
||||||
StopMusicStream(xm);
|
|
||||||
PlayMusicStream(xm);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pause/Resume music playing
|
|
||||||
if (IsKeyPressed(KEY_P))
|
|
||||||
{
|
|
||||||
pause = !pause;
|
|
||||||
|
|
||||||
if (pause) PauseMusicStream(xm);
|
|
||||||
else ResumeMusicStream(xm);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get timePlayed scaled to bar dimensions
|
|
||||||
timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40);
|
|
||||||
|
|
||||||
// Color circles animation
|
|
||||||
for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--)
|
|
||||||
{
|
|
||||||
circles[i].alpha += circles[i].speed;
|
|
||||||
circles[i].radius += circles[i].speed*10.0f;
|
|
||||||
|
|
||||||
if (circles[i].alpha > 1.0f) circles[i].speed *= -1;
|
|
||||||
|
|
||||||
if (circles[i].alpha <= 0.0f)
|
|
||||||
{
|
|
||||||
circles[i].alpha = 0.0f;
|
|
||||||
circles[i].radius = GetRandomValue(10, 40);
|
|
||||||
circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius);
|
|
||||||
circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius);
|
|
||||||
circles[i].color = colors[GetRandomValue(0, 13)];
|
|
||||||
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw time bar
|
|
||||||
DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY);
|
|
||||||
DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON);
|
|
||||||
DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadMusicStream(xm); // Unload music stream buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Music playing (streaming)
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int audio_music_stream()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
Music music = LoadMusicStream("resources/guitar_noodling.ogg");
|
|
||||||
|
|
||||||
PlayMusicStream(music);
|
|
||||||
|
|
||||||
float timePlayed = 0.0f;
|
|
||||||
bool pause = false;
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateMusicStream(music); // Update music buffer with new stream data
|
|
||||||
|
|
||||||
// Restart music playing (stop and play)
|
|
||||||
if (IsKeyPressed(KEY_SPACE))
|
|
||||||
{
|
|
||||||
StopMusicStream(music);
|
|
||||||
PlayMusicStream(music);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pause/Resume music playing
|
|
||||||
if (IsKeyPressed(KEY_P))
|
|
||||||
{
|
|
||||||
pause = !pause;
|
|
||||||
|
|
||||||
if (pause) PauseMusicStream(music);
|
|
||||||
else ResumeMusicStream(music);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get timePlayed scaled to bar dimensions (400 pixels)
|
|
||||||
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400;
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
DrawRectangle(200, 200, 400, 12, LIGHTGRAY);
|
|
||||||
DrawRectangle(200, 200, (int)timePlayed, 12, MAROON);
|
|
||||||
DrawRectangleLines(200, 200, 400, 12, GRAY);
|
|
||||||
|
|
||||||
DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY);
|
|
||||||
DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadMusicStream(music); // Unload music stream buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,128 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Raw audio streaming
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.6 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdlib.h> // Required for: malloc(), free()
|
|
||||||
#include <math.h> // Required for: sinf()
|
|
||||||
|
|
||||||
private const int MAX_SAMPLES = 22050;
|
|
||||||
private const int MAX_SAMPLES_PER_UPDATE = 4096;
|
|
||||||
|
|
||||||
public static int audio_raw_stream()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
// Init raw audio stream (sample rate: 22050, sample size: 16bit-short, channels: 1-mono)
|
|
||||||
AudioStream stream = InitAudioStream(22050, 16, 1);
|
|
||||||
|
|
||||||
// Generate samples data from sine wave
|
|
||||||
short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES);
|
|
||||||
|
|
||||||
// TODO: Review data generation, it seems data is discontinued for loop,
|
|
||||||
// for that reason, there is a clip everytime audio stream is looped...
|
|
||||||
for (int i = 0; i < MAX_SAMPLES; i++)
|
|
||||||
{
|
|
||||||
data[i] = (short)(sinf(((2*PI*(float)i)/2)*DEG2RAD)*32000);
|
|
||||||
}
|
|
||||||
|
|
||||||
PlayAudioStream(stream); // Start processing stream buffer (no data loaded currently)
|
|
||||||
|
|
||||||
int totalSamples = MAX_SAMPLES;
|
|
||||||
int samplesLeft = totalSamples;
|
|
||||||
|
|
||||||
Vector2 position = { 0, 0 };
|
|
||||||
|
|
||||||
SetTargetFPS(30); // Set our game to run at 30 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Refill audio stream if required
|
|
||||||
// NOTE: Every update we check if stream data has been already consumed and we update
|
|
||||||
// buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE),
|
|
||||||
// but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data...
|
|
||||||
if (IsAudioBufferProcessed(stream))
|
|
||||||
{
|
|
||||||
int numSamples = 0;
|
|
||||||
if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE;
|
|
||||||
else numSamples = samplesLeft;
|
|
||||||
|
|
||||||
UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples);
|
|
||||||
|
|
||||||
samplesLeft -= numSamples;
|
|
||||||
|
|
||||||
// Reset samples feeding (loop audio)
|
|
||||||
if (samplesLeft <= 0) samplesLeft = totalSamples;
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
// NOTE: Draw a part of the sine wave (only screen width, proportional values)
|
|
||||||
for (int i = 0; i < GetScreenWidth(); i++)
|
|
||||||
{
|
|
||||||
position.x = i;
|
|
||||||
position.y = 250 + 50*data[i]/32000;
|
|
||||||
|
|
||||||
DrawPixelV(position, RED);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
free(data); // Unload sine wave data
|
|
||||||
|
|
||||||
CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Sound loading and playing
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int audio_sound_loading()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
Sound fxWav = LoadSound("resources/sound.wav"); // Load WAV audio file
|
|
||||||
Sound fxOgg = LoadSound("resources/tanatana.ogg"); // Load OGG audio file
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
if (IsKeyPressed(KEY_SPACE)) PlaySound(fxWav); // Play WAV sound
|
|
||||||
if (IsKeyPressed(KEY_ENTER)) PlaySound(fxOgg); // Play OGG sound
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadSound(fxWav); // Unload sound data
|
|
||||||
UnloadSound(fxOgg); // Unload sound data
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,153 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - 2d camera
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.5 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private const int MAX_BUILDINGS = 100;
|
|
||||||
|
|
||||||
public static int core_2d_camera()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera");
|
|
||||||
|
|
||||||
Rectangle player = { 400, 280, 40, 40 };
|
|
||||||
Rectangle buildings[MAX_BUILDINGS];
|
|
||||||
Color buildColors[MAX_BUILDINGS];
|
|
||||||
|
|
||||||
int spacing = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_BUILDINGS; i++)
|
|
||||||
{
|
|
||||||
buildings[i].width = GetRandomValue(50, 200);
|
|
||||||
buildings[i].height = GetRandomValue(100, 800);
|
|
||||||
buildings[i].y = screenHeight - 130 - buildings[i].height;
|
|
||||||
buildings[i].x = -6000 + spacing;
|
|
||||||
|
|
||||||
spacing += buildings[i].width;
|
|
||||||
|
|
||||||
buildColors[i] = (Color){ GetRandomValue(200, 240), GetRandomValue(200, 240), GetRandomValue(200, 250), 255 };
|
|
||||||
}
|
|
||||||
|
|
||||||
Camera2D camera;
|
|
||||||
|
|
||||||
camera.target = (Vector2){ player.x + 20, player.y + 20 };
|
|
||||||
camera.offset = (Vector2){ 0, 0 };
|
|
||||||
camera.rotation = 0.0f;
|
|
||||||
camera.zoom = 1.0f;
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
if (IsKeyDown(KEY_RIGHT))
|
|
||||||
{
|
|
||||||
player.x += 2; // Player movement
|
|
||||||
camera.offset.x -= 2; // Camera displacement with player movement
|
|
||||||
}
|
|
||||||
else if (IsKeyDown(KEY_LEFT))
|
|
||||||
{
|
|
||||||
player.x -= 2; // Player movement
|
|
||||||
camera.offset.x += 2; // Camera displacement with player movement
|
|
||||||
}
|
|
||||||
|
|
||||||
// Camera target follows player
|
|
||||||
camera.target = (Vector2){ player.x + 20, player.y + 20 };
|
|
||||||
|
|
||||||
// Camera rotation controls
|
|
||||||
if (IsKeyDown(KEY_A)) camera.rotation--;
|
|
||||||
else if (IsKeyDown(KEY_S)) camera.rotation++;
|
|
||||||
|
|
||||||
// Limit camera rotation to 80 degrees (-40 to 40)
|
|
||||||
if (camera.rotation > 40) camera.rotation = 40;
|
|
||||||
else if (camera.rotation < -40) camera.rotation = -40;
|
|
||||||
|
|
||||||
// Camera zoom controls
|
|
||||||
camera.zoom += ((float)GetMouseWheelMove()*0.05f);
|
|
||||||
|
|
||||||
if (camera.zoom > 3.0f) camera.zoom = 3.0f;
|
|
||||||
else if (camera.zoom < 0.1f) camera.zoom = 0.1f;
|
|
||||||
|
|
||||||
// Camera reset (zoom and rotation)
|
|
||||||
if (IsKeyPressed(KEY_R))
|
|
||||||
{
|
|
||||||
camera.zoom = 1.0f;
|
|
||||||
camera.rotation = 0.0f;
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
BeginMode2D(camera);
|
|
||||||
|
|
||||||
DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY);
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_BUILDINGS; i++) DrawRectangleRec(buildings[i], buildColors[i]);
|
|
||||||
|
|
||||||
DrawRectangleRec(player, RED);
|
|
||||||
|
|
||||||
DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN);
|
|
||||||
DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN);
|
|
||||||
|
|
||||||
EndMode2D();
|
|
||||||
|
|
||||||
DrawText("SCREEN AREA", 640, 10, 20, RED);
|
|
||||||
|
|
||||||
DrawRectangle(0, 0, screenWidth, 5, RED);
|
|
||||||
DrawRectangle(0, 5, 5, screenHeight - 10, RED);
|
|
||||||
DrawRectangle(screenWidth - 5, 5, 5, screenHeight - 10, RED);
|
|
||||||
DrawRectangle(0, screenHeight - 5, screenWidth, 5, RED);
|
|
||||||
|
|
||||||
DrawRectangle( 10, 10, 250, 113, Fade(SKYBLUE, 0.5f));
|
|
||||||
DrawRectangleLines( 10, 10, 250, 113, BLUE);
|
|
||||||
|
|
||||||
DrawText("Free 2d camera controls:", 20, 20, 10, BLACK);
|
|
||||||
DrawText("- Right/Left to move Offset", 40, 40, 10, DARKGRAY);
|
|
||||||
DrawText("- Mouse Wheel to Zoom in-out", 40, 60, 10, DARKGRAY);
|
|
||||||
DrawText("- A / S to Rotate", 40, 80, 10, DARKGRAY);
|
|
||||||
DrawText("- R to reset Zoom and Rotation", 40, 100, 10, DARKGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - 3d camera first person
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private const int MAX_COLUMNS = 20;
|
|
||||||
|
|
||||||
public static int core_3d_camera_first_person()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera first person");
|
|
||||||
|
|
||||||
// Define the camera to look into our 3d world (position, target, up vector)
|
|
||||||
Camera camera = { 0 };
|
|
||||||
camera.position = (Vector3){ 4.0f, 2.0f, 4.0f };
|
|
||||||
camera.target = (Vector3){ 0.0f, 1.8f, 0.0f };
|
|
||||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
|
|
||||||
camera.fovy = 60.0f;
|
|
||||||
camera.type = CAMERA_PERSPECTIVE;
|
|
||||||
|
|
||||||
// Generates some random columns
|
|
||||||
float heights[MAX_COLUMNS];
|
|
||||||
Vector3 positions[MAX_COLUMNS];
|
|
||||||
Color colors[MAX_COLUMNS];
|
|
||||||
|
|
||||||
for (int i = 0; i < MAX_COLUMNS; i++)
|
|
||||||
{
|
|
||||||
heights[i] = (float)GetRandomValue(1, 12);
|
|
||||||
positions[i] = (Vector3){ GetRandomValue(-15, 15), heights[i]/2, GetRandomValue(-15, 15) };
|
|
||||||
colors[i] = (Color){ GetRandomValue(20, 255), GetRandomValue(10, 55), 30, 255 };
|
|
||||||
}
|
|
||||||
|
|
||||||
SetCameraMode(camera, CAMERA_FIRST_PERSON); // Set a first person camera mode
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateCamera(&camera); // Update camera
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
BeginMode3D(camera);
|
|
||||||
|
|
||||||
DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground
|
|
||||||
DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall
|
|
||||||
DrawCube((Vector3){ 16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, LIME); // Draw a green wall
|
|
||||||
DrawCube((Vector3){ 0.0f, 2.5f, 16.0f }, 32.0f, 5.0f, 1.0f, GOLD); // Draw a yellow wall
|
|
||||||
|
|
||||||
// Draw some cubes around
|
|
||||||
for (int i = 0; i < MAX_COLUMNS; i++)
|
|
||||||
{
|
|
||||||
DrawCube(positions[i], 2.0f, heights[i], 2.0f, colors[i]);
|
|
||||||
DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndMode3D();
|
|
||||||
|
|
||||||
DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f));
|
|
||||||
DrawRectangleLines( 10, 10, 220, 70, BLUE);
|
|
||||||
|
|
||||||
DrawText("First person camera default controls:", 20, 20, 10, BLACK);
|
|
||||||
DrawText("- Move with keys: W, A, S, D", 40, 40, 10, DARKGRAY);
|
|
||||||
DrawText("- Mouse move to look around", 40, 60, 10, DARKGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Initialize 3d camera free
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_3d_camera_free()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
|
|
||||||
|
|
||||||
// Define the camera to look into our 3d world
|
|
||||||
Camera3D camera;
|
|
||||||
camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
|
|
||||||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
|
||||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
|
||||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
|
||||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
|
||||||
|
|
||||||
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
|
|
||||||
|
|
||||||
SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateCamera(&camera); // Update camera
|
|
||||||
|
|
||||||
if (IsKeyDown('Z')) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f };
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
BeginMode3D(camera);
|
|
||||||
|
|
||||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
|
||||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
|
||||||
|
|
||||||
DrawGrid(10, 1.0f);
|
|
||||||
|
|
||||||
EndMode3D();
|
|
||||||
|
|
||||||
DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f));
|
|
||||||
DrawRectangleLines( 10, 10, 320, 133, BLUE);
|
|
||||||
|
|
||||||
DrawText("Free camera default controls:", 20, 20, 10, BLACK);
|
|
||||||
DrawText("- Mouse Wheel to Zoom in-out", 40, 40, 10, DARKGRAY);
|
|
||||||
DrawText("- Mouse Wheel Pressed to Pan", 40, 60, 10, DARKGRAY);
|
|
||||||
DrawText("- Alt + Mouse Wheel Pressed to Rotate", 40, 80, 10, DARKGRAY);
|
|
||||||
DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 40, 100, 10, DARKGRAY);
|
|
||||||
DrawText("- Z to zoom to (0, 0, 0)", 40, 120, 10, DARKGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Initialize 3d mode
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_3d_mode()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode");
|
|
||||||
|
|
||||||
// Define the camera to look into our 3d world
|
|
||||||
Camera3D camera;
|
|
||||||
camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position
|
|
||||||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
|
||||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
|
||||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
|
||||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
|
||||||
|
|
||||||
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// TODO: Update your variables here
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
BeginMode3D(camera);
|
|
||||||
|
|
||||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
|
||||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
|
||||||
|
|
||||||
DrawGrid(10, 1.0f);
|
|
||||||
|
|
||||||
EndMode3D();
|
|
||||||
|
|
||||||
DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY);
|
|
||||||
|
|
||||||
DrawFPS(10, 10);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,118 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Picking in 3d mode
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_3d_picking()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d picking");
|
|
||||||
|
|
||||||
// Define the camera to look into our 3d world
|
|
||||||
Camera camera;
|
|
||||||
camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
|
|
||||||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
|
||||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
|
||||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
|
||||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
|
||||||
|
|
||||||
Vector3 cubePosition = { 0.0f, 1.0f, 0.0f };
|
|
||||||
Vector3 cubeSize = { 2.0f, 2.0f, 2.0f };
|
|
||||||
|
|
||||||
Ray ray = {0.0f, 0.0f, 0.0f}; // Picking line ray
|
|
||||||
|
|
||||||
bool collision = false;
|
|
||||||
|
|
||||||
SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateCamera(&camera); // Update camera
|
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
|
||||||
{
|
|
||||||
ray = GetMouseRay(GetMousePosition(), camera);
|
|
||||||
|
|
||||||
// Check collision between ray and box
|
|
||||||
collision = CheckCollisionRayBox(ray,
|
|
||||||
(BoundingBox){(Vector3){ cubePosition.x - cubeSize.x/2, cubePosition.y - cubeSize.y/2, cubePosition.z - cubeSize.z/2 },
|
|
||||||
(Vector3){ cubePosition.x + cubeSize.x/2, cubePosition.y + cubeSize.y/2, cubePosition.z + cubeSize.z/2 }});
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
BeginMode3D(camera);
|
|
||||||
|
|
||||||
if (collision)
|
|
||||||
{
|
|
||||||
DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, RED);
|
|
||||||
DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, MAROON);
|
|
||||||
|
|
||||||
DrawCubeWires(cubePosition, cubeSize.x + 0.2f, cubeSize.y + 0.2f, cubeSize.z + 0.2f, GREEN);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawCube(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, GRAY);
|
|
||||||
DrawCubeWires(cubePosition, cubeSize.x, cubeSize.y, cubeSize.z, DARKGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawRay(ray, MAROON);
|
|
||||||
DrawGrid(10, 1.0f);
|
|
||||||
|
|
||||||
EndMode3D();
|
|
||||||
|
|
||||||
DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY);
|
|
||||||
|
|
||||||
if(collision) DrawText("BOX SELECTED", (screenWidth - MeasureText("BOX SELECTED", 30)) / 2, screenHeight * 0.1f, 30, GREEN);
|
|
||||||
|
|
||||||
DrawFPS(10, 10);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
{
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Basic window
|
|
||||||
*
|
|
||||||
* Welcome to raylib!
|
|
||||||
*
|
|
||||||
* To test examples, just press F6 and execute raylib_compile_execute script
|
|
||||||
* Note that compiled executable is placed in the same folder as .c file
|
|
||||||
*
|
|
||||||
* You can find all basic examples on C:\raylib\raylib\examples folder or
|
|
||||||
* raylib official webpage: www.raylib.com
|
|
||||||
*
|
|
||||||
* Enjoy using raylib. :)
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
public static int core_basic_window()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// TODO: Update your variables here
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("Congrats! You created your first window!", 190, 200, 20, MAROON);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Basic window (adapted for HTML5 platform)
|
|
||||||
*
|
|
||||||
* This example is prepared to compile for PLATFORM_WEB, PLATFORM_DESKTOP and PLATFORM_RPI
|
|
||||||
* As you will notice, code structure is slightly diferent to the other examples...
|
|
||||||
* To compile it for PLATFORM_WEB just uncomment #define PLATFORM_WEB at beginning
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//#define PLATFORM_WEB
|
|
||||||
|
|
||||||
#if defined(PLATFORM_WEB)
|
|
||||||
#include <emscripten/emscripten.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Global Variables Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Module Functions Declaration
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
void UpdateDrawFrame(void); // Update and Draw one frame
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Main Enry Point
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
public static int core_basic_window_web()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window");
|
|
||||||
|
|
||||||
#if defined(PLATFORM_WEB)
|
|
||||||
emscripten_set_main_loop(UpdateDrawFrame, 0, 1);
|
|
||||||
#else
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
UpdateDrawFrame();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Module Functions Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
void UpdateDrawFrame(void)
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// TODO: Update your variables here
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Color selection by mouse (collision detection)
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_color_select()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - color selection (collision detection)");
|
|
||||||
|
|
||||||
Color colors[21] = { DARKGRAY, MAROON, ORANGE, DARKGREEN, DARKBLUE, DARKPURPLE, DARKBROWN,
|
|
||||||
GRAY, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK, YELLOW,
|
|
||||||
GREEN, SKYBLUE, PURPLE, BEIGE };
|
|
||||||
|
|
||||||
Rectangle colorsRecs[21]; // Rectangles array
|
|
||||||
|
|
||||||
// Fills colorsRecs data (for every rectangle)
|
|
||||||
for (int i = 0; i < 21; i++)
|
|
||||||
{
|
|
||||||
colorsRecs[i].x = 20 + 100*(i%7) + 10*(i%7);
|
|
||||||
colorsRecs[i].y = 60 + 100*(i/7) + 10*(i/7);
|
|
||||||
colorsRecs[i].width = 100;
|
|
||||||
colorsRecs[i].height = 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool selected[21] = { false }; // Selected rectangles indicator
|
|
||||||
|
|
||||||
Vector2 mousePoint;
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
mousePoint = GetMousePosition();
|
|
||||||
|
|
||||||
for (int i = 0; i < 21; i++) // Iterate along all the rectangles
|
|
||||||
{
|
|
||||||
if (CheckCollisionPointRec(mousePoint, colorsRecs[i]))
|
|
||||||
{
|
|
||||||
colors[i].a = 120;
|
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) selected[i] = !selected[i];
|
|
||||||
}
|
|
||||||
else colors[i].a = 255;
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
for (int i = 0; i < 21; i++) // Draw all rectangles
|
|
||||||
{
|
|
||||||
DrawRectangleRec(colorsRecs[i], colors[i]);
|
|
||||||
|
|
||||||
// Draw four rectangles around selected rectangle
|
|
||||||
if (selected[i])
|
|
||||||
{
|
|
||||||
DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 100, 10, RAYWHITE); // Square top rectangle
|
|
||||||
DrawRectangle(colorsRecs[i].x, colorsRecs[i].y, 10, 100, RAYWHITE); // Square left rectangle
|
|
||||||
DrawRectangle(colorsRecs[i].x + 90, colorsRecs[i].y, 10, 100, RAYWHITE); // Square right rectangle
|
|
||||||
DrawRectangle(colorsRecs[i].x, colorsRecs[i].y + 90, 100, 10, RAYWHITE); // Square bottom rectangle
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Windows drop files
|
|
||||||
*
|
|
||||||
* This example only works on platforms that support drag & drop (Windows, Linux, OSX, Html5?)
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_drop_files()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - drop files");
|
|
||||||
|
|
||||||
int count = 0;
|
|
||||||
char **droppedFiles = { 0 };
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
if (IsFileDropped())
|
|
||||||
{
|
|
||||||
droppedFiles = GetDroppedFiles(&count);
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
if (count == 0) DrawText("Drop your files to this window!", 100, 40, 20, DARKGRAY);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawText("Dropped files:", 100, 40, 20, DARKGRAY);
|
|
||||||
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
|
||||||
if (i%2 == 0) DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.5f));
|
|
||||||
else DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, 0.3f));
|
|
||||||
|
|
||||||
DrawText(droppedFiles[i], 120, 100 + 40*i, 10, GRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawText("Drop new files...", 100, 110 + 40*count, 20, DARKGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
ClearDroppedFiles(); // Clear internal buffers
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Gestures Detection
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.4 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
private const int MAX_GESTURE_STRINGS = 20;
|
|
||||||
|
|
||||||
public static int core_gestures_detection()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection");
|
|
||||||
|
|
||||||
Vector2 touchPosition = { 0, 0 };
|
|
||||||
Rectangle touchArea = { 220, 10, screenWidth - 230, screenHeight - 20 };
|
|
||||||
|
|
||||||
int gesturesCount = 0;
|
|
||||||
char gestureStrings[MAX_GESTURE_STRINGS][32];
|
|
||||||
|
|
||||||
int currentGesture = GESTURE_NONE;
|
|
||||||
int lastGesture = GESTURE_NONE;
|
|
||||||
|
|
||||||
//SetGesturesEnabled(0b0000000000001001); // Enable only some gestures to be detected
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
lastGesture = currentGesture;
|
|
||||||
currentGesture = GetGestureDetected();
|
|
||||||
touchPosition = GetTouchPosition(0);
|
|
||||||
|
|
||||||
if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE))
|
|
||||||
{
|
|
||||||
if (currentGesture != lastGesture)
|
|
||||||
{
|
|
||||||
// Store gesture string
|
|
||||||
switch (currentGesture)
|
|
||||||
{
|
|
||||||
case GESTURE_TAP: strcpy(gestureStrings[gesturesCount], "GESTURE TAP"); break;
|
|
||||||
case GESTURE_DOUBLETAP: strcpy(gestureStrings[gesturesCount], "GESTURE DOUBLETAP"); break;
|
|
||||||
case GESTURE_HOLD: strcpy(gestureStrings[gesturesCount], "GESTURE HOLD"); break;
|
|
||||||
case GESTURE_DRAG: strcpy(gestureStrings[gesturesCount], "GESTURE DRAG"); break;
|
|
||||||
case GESTURE_SWIPE_RIGHT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE RIGHT"); break;
|
|
||||||
case GESTURE_SWIPE_LEFT: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE LEFT"); break;
|
|
||||||
case GESTURE_SWIPE_UP: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE UP"); break;
|
|
||||||
case GESTURE_SWIPE_DOWN: strcpy(gestureStrings[gesturesCount], "GESTURE SWIPE DOWN"); break;
|
|
||||||
case GESTURE_PINCH_IN: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH IN"); break;
|
|
||||||
case GESTURE_PINCH_OUT: strcpy(gestureStrings[gesturesCount], "GESTURE PINCH OUT"); break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
|
|
||||||
gesturesCount++;
|
|
||||||
|
|
||||||
// Reset gestures strings
|
|
||||||
if (gesturesCount >= MAX_GESTURE_STRINGS)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < MAX_GESTURE_STRINGS; i++) strcpy(gestureStrings[i], "\0");
|
|
||||||
|
|
||||||
gesturesCount = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawRectangleRec(touchArea, GRAY);
|
|
||||||
DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5f));
|
|
||||||
|
|
||||||
for (int i = 0; i < gesturesCount; i++)
|
|
||||||
{
|
|
||||||
if (i%2 == 0) DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.5f));
|
|
||||||
else DrawRectangle(10, 30 + 20*i, 200, 20, Fade(LIGHTGRAY, 0.3f));
|
|
||||||
|
|
||||||
if (i < gesturesCount - 1) DrawText(gestureStrings[i], 35, 36 + 20*i, 10, DARKGRAY);
|
|
||||||
else DrawText(gestureStrings[i], 35, 36 + 20*i, 10, MAROON);
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY);
|
|
||||||
DrawText("DETECTED GESTURES", 50, 15, 10, GRAY);
|
|
||||||
|
|
||||||
if (currentGesture != GESTURE_NONE) DrawCircleV(touchPosition, 30, MAROON);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,208 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Gamepad input
|
|
||||||
*
|
|
||||||
* NOTE: This example requires a Gamepad connected to the system
|
|
||||||
* raylib is configured to work with the following gamepads:
|
|
||||||
* - Xbox 360 Controller (Xbox 360, Xbox One)
|
|
||||||
* - PLAYSTATION(R)3 Controller
|
|
||||||
* Check raylib.h for buttons configuration
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.6 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// NOTE: Gamepad name ID depends on drivers and OS
|
|
||||||
#if defined(PLATFORM_RPI)
|
|
||||||
private const int XBOX360_NAME_ID = 360; pad"
|
|
||||||
private const int PS3_NAME_ID = 3; Controller"
|
|
||||||
#else
|
|
||||||
private const int XBOX360_NAME_ID = 360; Controller"
|
|
||||||
private const int PS3_NAME_ID = 3; Controller"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public static int core_input_gamepad()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
SetConfigFlags(FLAG_MSAA_4X_HINT); // Set MSAA 4X hint before windows creation
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input");
|
|
||||||
|
|
||||||
Texture2D texPs3Pad = LoadTexture("resources/ps3.png");
|
|
||||||
Texture2D texXboxPad = LoadTexture("resources/xbox.png");
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// ...
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
if (IsGamepadAvailable(GAMEPAD_PLAYER1))
|
|
||||||
{
|
|
||||||
DrawText(FormatText("GP1: %s", GetGamepadName(GAMEPAD_PLAYER1)), 10, 10, 10, BLACK);
|
|
||||||
|
|
||||||
if (IsGamepadName(GAMEPAD_PLAYER1, XBOX360_NAME_ID))
|
|
||||||
{
|
|
||||||
DrawTexture(texXboxPad, 0, 0, DARKGRAY);
|
|
||||||
|
|
||||||
// Draw buttons: xbox home
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(394, 89, 19, RED);
|
|
||||||
|
|
||||||
// Draw buttons: basic
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD);
|
|
||||||
|
|
||||||
// Draw buttons: d-pad
|
|
||||||
DrawRectangle(317, 202, 19, 71, BLACK);
|
|
||||||
DrawRectangle(293, 228, 69, 19, BLACK);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED);
|
|
||||||
|
|
||||||
// Draw buttons: left-right back
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED);
|
|
||||||
|
|
||||||
// Draw axis: left joystick
|
|
||||||
DrawCircle(259, 152, 39, BLACK);
|
|
||||||
DrawCircle(259, 152, 34, LIGHTGRAY);
|
|
||||||
DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20),
|
|
||||||
152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK);
|
|
||||||
|
|
||||||
// Draw axis: right joystick
|
|
||||||
DrawCircle(461, 237, 38, BLACK);
|
|
||||||
DrawCircle(461, 237, 33, LIGHTGRAY);
|
|
||||||
DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20),
|
|
||||||
237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK);
|
|
||||||
|
|
||||||
// Draw axis: left-right triggers
|
|
||||||
DrawRectangle(170, 30, 15, 70, GRAY);
|
|
||||||
DrawRectangle(604, 30, 15, 70, GRAY);
|
|
||||||
DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED);
|
|
||||||
DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED);
|
|
||||||
|
|
||||||
//DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK);
|
|
||||||
//DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK);
|
|
||||||
}
|
|
||||||
else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID))
|
|
||||||
{
|
|
||||||
DrawTexture(texPs3Pad, 0, 0, DARKGRAY);
|
|
||||||
|
|
||||||
// Draw buttons: ps
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED);
|
|
||||||
|
|
||||||
// Draw buttons: basic
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK);
|
|
||||||
|
|
||||||
// Draw buttons: d-pad
|
|
||||||
DrawRectangle(225, 132, 24, 84, BLACK);
|
|
||||||
DrawRectangle(195, 161, 84, 25, BLACK);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED);
|
|
||||||
|
|
||||||
// Draw buttons: left-right back buttons
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED);
|
|
||||||
if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED);
|
|
||||||
|
|
||||||
// Draw axis: left joystick
|
|
||||||
DrawCircle(319, 255, 35, BLACK);
|
|
||||||
DrawCircle(319, 255, 31, LIGHTGRAY);
|
|
||||||
DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20),
|
|
||||||
255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK);
|
|
||||||
|
|
||||||
// Draw axis: right joystick
|
|
||||||
DrawCircle(475, 255, 35, BLACK);
|
|
||||||
DrawCircle(475, 255, 31, LIGHTGRAY);
|
|
||||||
DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20),
|
|
||||||
255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK);
|
|
||||||
|
|
||||||
// Draw axis: left-right triggers
|
|
||||||
DrawRectangle(169, 48, 15, 70, GRAY);
|
|
||||||
DrawRectangle(611, 48, 15, 70, GRAY);
|
|
||||||
DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED);
|
|
||||||
DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawText("- GENERIC GAMEPAD -", 280, 180, 20, GRAY);
|
|
||||||
|
|
||||||
// TODO: Draw generic gamepad
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawText(FormatText("DETECTED AXIS [%i]:", GetGamepadAxisCount(GAMEPAD_PLAYER1)), 10, 50, 10, MAROON);
|
|
||||||
|
|
||||||
for (int i = 0; i < GetGamepadAxisCount(GAMEPAD_PLAYER1); i++)
|
|
||||||
{
|
|
||||||
DrawText(FormatText("AXIS %i: %.02f", i, GetGamepadAxisMovement(GAMEPAD_PLAYER1, i)), 20, 70 + 20*i, 10, DARKGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GetGamepadButtonPressed() != -1) DrawText(FormatText("DETECTED BUTTON: %i", GetGamepadButtonPressed()), 10, 430, 10, RED);
|
|
||||||
else DrawText("DETECTED BUTTON: NONE", 10, 430, 10, GRAY);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DrawText("GP1: NOT DETECTED", 10, 10, 10, GRAY);
|
|
||||||
|
|
||||||
DrawTexture(texXboxPad, 0, 0, LIGHTGRAY);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadTexture(texPs3Pad);
|
|
||||||
UnloadTexture(texXboxPad);
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Keyboard input
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_input_keys()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - keyboard input");
|
|
||||||
|
|
||||||
Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 };
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set target frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 2.0f;
|
|
||||||
if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 2.0f;
|
|
||||||
if (IsKeyDown(KEY_UP)) ballPosition.y -= 2.0f;
|
|
||||||
if (IsKeyDown(KEY_DOWN)) ballPosition.y += 2.0f;
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("move the ball with arrow keys", 10, 10, 20, DARKGRAY);
|
|
||||||
|
|
||||||
DrawCircleV(ballPosition, 50, MAROON);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] example - Mouse input
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_input_mouse()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse input");
|
|
||||||
|
|
||||||
Vector2 ballPosition = { -100.0f, -100.0f };
|
|
||||||
Color ballColor = DARKBLUE;
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
ballPosition = GetMousePosition();
|
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) ballColor = MAROON;
|
|
||||||
else if (IsMouseButtonPressed(MOUSE_MIDDLE_BUTTON)) ballColor = LIME;
|
|
||||||
else if (IsMouseButtonPressed(MOUSE_RIGHT_BUTTON)) ballColor = DARKBLUE;
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawCircleV(ballPosition, 40, ballColor);
|
|
||||||
|
|
||||||
DrawText("move ball with mouse and click mouse button to change color", 10, 10, 20, DARKGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
||||||
|
|
||||||
|
|
||||||
using Raylib;
|
|
||||||
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public partial class Examples
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [core] examples - Mouse wheel
|
|
||||||
*
|
|
||||||
* This test has been created using raylib 1.1 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int core_mouse_wheel()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [core] example - mouse wheel");
|
|
||||||
|
|
||||||
int boxPositionY = screenHeight/2 - 40;
|
|
||||||
int scrollSpeed = 4; // Scrolling speed in pixels
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
boxPositionY -= (GetMouseWheelMove()*scrollSpeed);
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
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();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue