Skip to content

Instantly share code, notes, and snippets.

@ed95
Created March 29, 2018 16:33
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ed95/77a81d780f125217d5c3e856c4c4be04 to your computer and use it in GitHub Desktop.
Save ed95/77a81d780f125217d5c3e856c4c4be04 to your computer and use it in GitHub Desktop.
A simple JUCE app using emojis
/*******************************************************************************
The block below describes the properties of this PIP. A PIP is a short snippet
of code that can be read by the Projucer and used to generate a JUCE project.
BEGIN_JUCE_PIP_METADATA
name: EmojiJUCE
vendor: JUCE
website: http://juce.com
dependencies: juce_core, juce_data_structures, juce_events, juce_graphics, juce_gui_basics
exporters: xcode_mac, xcode_iphone
type: Component
mainClass: EmojiJUCE
END_JUCE_PIP_METADATA
*******************************************************************************/
#pragma once
#include "../JuceLibraryCode/JuceHeader.h"
#include "juce_EmojiDefines.h"
//==============================================================================
πŸ— πŸŠπŸ”Œ : 🐡 πŸ”Œ
{
πŸŠπŸ”Œ (πŸ“* πŸ‘»πŸŠπŸ“, πŸ‘†<float> πŸ‘»πŸŠπŸ‘†)
: πŸŠπŸ“ (πŸ‘»πŸŠπŸ“),
πŸŠπŸ‘† (πŸ‘»πŸŠπŸ‘†)
{
πŸ‘‰πŸ“ (40, 40);
πŸŠπŸ‘‰();
}
bool πŸŠπŸ‘‰()
{
πŸŠπŸ‘† += 🍊🏎;
🍊🏎.y += 0.1f;
πŸ‘‰Β·πŸ‘† ((int) πŸŠπŸ‘†.x,
(int) πŸŠπŸ‘†.y);
if (🎁* πŸ‘¦ = πŸ‘ˆπŸ‘¦())
πŸ‘ˆ πŸ“ˆ (πŸŠπŸ‘†.x, (float) πŸ‘¦->πŸ‘ˆπŸ“πŸ‘ˆ()) && πŸŠπŸ‘†.y < (float) πŸ‘¦->πŸ‘ˆπŸ“πŸ‘†();
πŸ‘ˆ πŸŠπŸ‘†.y < 400.0f && πŸŠπŸ‘†.x >= -10.0f;
}
πŸ•³ πŸ‘¨β€πŸŽ¨ (πŸ‘Ύ& πŸ“„) πŸ‘ΆπŸ‘¦
{
πŸŠπŸ“->πŸ–πŸ“ (πŸ“„, πŸ‘ˆπŸ πŸ“().toFloat(), RectanglePlacement::Β·, 1.0f);
}
//==============================================================================
πŸ“* πŸŠπŸ“;
πŸ‘†<float> πŸŠπŸ‘†,
🍊🏎 { 🎲().nextFloat() * 4.0f - 2.0f,
🎲().nextFloat() * -6.0f - 2.0f };
//==============================================================================
🚿🚨 (πŸŠπŸ”Œ)
};
//==============================================================================
πŸŽ“ EmojiJUCE : 🐡 πŸ”Œ,
πŸ™ˆ πŸ•°
{
🐡:
//==============================================================================
EmojiJUCE()
{
πŸ‘‰πŸ“ (600, 400);
πŸ› ();
πŸŽ¬πŸ•° (60);
}
~EmojiJUCE()
{
}
//==============================================================================
πŸ•³ πŸ‘¨β€πŸŽ¨ (πŸ‘Ύ& πŸ“„) πŸ‘ΆπŸ‘¦
{
πŸ“„.πŸŒ• (πŸ‘ˆπŸ–Ό().πŸ‘€πŸŽ¨ (ResizableWindow::backgroundColourId));
πŸ“„.πŸ‘‰πŸ–‹ (πŸ–‹ (16.0f));
πŸ“„.πŸ‘‰πŸŽ¨ (🎨 (255, 255, 255));
πŸ‘ˆπŸ§  🀑;
if (Base64::convertFromBase64 (🀑, "QXByaWwgRm9vbCdzIQ=="))
πŸ“„.πŸ–πŸ“œ (🀑.toString(), πŸ‘ˆπŸ πŸ“(), Justification::Β·);
}
πŸ•³ πŸ“() πŸ‘ΆπŸ‘¦
{
}
πŸ™ˆ:
//==============================================================================
πŸ•³ πŸ•°πŸ“ž() πŸ‘ΆπŸ‘¦
{
πŸ’« (int i = 🍊🍊.πŸ“(); --i >= 0;)
if (! 🍊🍊.πŸ“€ (i)->πŸŠπŸ‘‰())
🍊🍊.πŸ”₯ (i);
if (🎲().nextInt (100) < 4)
πŸ‘€πŸ”Œ (🍊🍊.πŸ“₯ (πŸ‘Ά πŸŠπŸ”Œ (🍊, πŸ‘ˆπŸ“().πŸ‘ˆΒ·().toFloat())));
}
πŸ‘πŸšŒ<πŸŠπŸ”Œ> 🍊🍊;
πŸ”­πŸ‘†<πŸ“> 🍊;
//==============================================================================
πŸ•³ πŸ› ()
{
const char* πŸ‘»πŸŠ = R"JUCELogo(
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><g mask="url(#mask-2)" fill="#B144C8">
<path d="M23.7 49.5C14 49.5 6 41.5 6 31.7 6 22 14 14 23.7 14 33.5 14 41.5 22 41.5 31.7 41.5
41.5 33.5 49.5 23.7 49.5ZM23.7 15.2C14.6 15.2 7.2 22.6 7.2 31.7 7.2 40.9 14.6 48.3
23.7 48.3 32.9 48.3 40.3 40.9 40.3 31.7 40.3 22.6 32.9 15.2 23.7 15.2Z"/>
<path d="M37.7 31.1C38 31.1 38.3 31 38.5 30.8 38.8 30.6 38.9 30.3 38.8 29.9 38.5 27.2 37.4
24.5 35.7 22.3 35.5 22 35.2 21.9 34.8 21.9 34.6 21.9 34.3 22 34.1 22.2L25.5 30.8C25.4
30.9 25.5 31.1 25.7 31.1L37.7 31.1Z"/>
<path d="M34.8 41.6L34.8 41.6C35.2 41.6 35.5 41.4 35.7 41.1 37.4 38.9 38.5 36.3 38.8 33.5 38.9
33.2 38.8 32.9 38.5 32.6 38.3 32.4 38 32.3 37.7 32.3L25.7 32.3C25.5 32.3 25.4 32.5 25.5
32.7L34.1 41.2C34.3 41.4 34.6 41.6 34.8 41.6"/>
<path d="M12.6 21.9C12.3 21.9 12 22 11.8 22.3 10 24.5 9 27.2 8.6 29.9 8.6 30.3 8.7 30.6 8.9
30.8 9.1 31 9.4 31.1 9.7 31.1L21.8 31.1C22 31.1 22.1 30.9 21.9 30.8L13.4 22.2C13.2
22 12.9 21.9 12.6 21.9"/>
<path d="M21.8 32.3L9.7 32.3C9.4 32.3 9.1 32.4 8.9 32.6 8.7 32.9 8.6 33.2 8.6 33.5 9 36.3 10
38.9 11.8 41.1 12 41.4 12.3 41.6 12.6 41.6 12.9 41.6 13.2 41.4 13.4 41.2L13.4 41.2 21.9
32.7C22.1 32.5 22 32.3 21.8 32.3"/>
<path d="M23.1 17.7C23.1 17.4 23 17.1 22.8 16.9 22.6 16.7 22.3 16.6 21.9 16.6 19.2 17 16.5 18 14.3
19.8 14 20 13.9 20.3 13.9 20.6 13.9 20.9 14 21.2 14.2 21.4L22.8 29.9C22.9 30.1 23.1 30 23.1
29.8L23.1 17.7Z"/>
<path d="M33.6 20.6L33.6 20.6C33.6 20.3 33.4 20 33.1 19.8 30.9 18 28.3 17 25.5 16.6 25.2 16.6 24.9
16.7 24.6 16.9 24.4 17.1 24.3 17.4 24.3 17.7L24.3 29.8C24.3 30 24.5 30.1 24.7 29.9L33.2
21.4C33.4 21.2 33.6 20.9 33.6 20.6"/>
<path d="M13.9 42.8C13.9 43.2 14 43.5 14.3 43.7 16.5 45.4 19.2 46.5 21.9 46.8 22.3 46.9 22.6 46.8
22.8 46.5 23 46.3 23.1 46 23.1 45.7L23.1 33.7C23.1 33.5 22.9 33.4 22.8 33.5L14.2 42.1C14
42.3 13.9 42.6 13.9 42.8"/>
<path d="M24.3 45.7C24.3 46 24.4 46.3 24.6 46.5 24.9 46.8 25.2 46.9 25.5 46.8 28.3 46.5 30.9
45.4 33.1 43.7 33.4 43.5 33.6 43.2 33.6 42.8 33.6 42.6 33.4 42.3 33.2 42.1L24.7 33.5C24.5
33.4 24.3 33.5 24.3 33.7L24.3 45.7Z"/>
</g>
</svg>
)JUCELogo";
πŸ”­πŸ‘†<🏷> πŸ–₯ (🏷🏷::πŸ‘“ (πŸ‘»πŸŠ));
🍊 = πŸ“::πŸ‘ΆπŸ–₯ (*πŸ–₯);
πŸš” (🍊 != πŸ•³πŸ‘ˆ);
}
//==============================================================================
🚿🚨 (EmojiJUCE)
};
@dblais01
Copy link

I can't wait to use this in my next interview white-board session! Thanks!!! 🎲

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment