Show Emojis

My code for a movie with emoji is not transferred from the 1st emoji sign here. How can I change this?
On my iPad Pro it runs perfectly.
https://youtu.be/jCZ61ClDjDc

@matox I don’t exactly understand what you are trying to do. Please add a small description. Also, you have added the same post twice.

@matox - did you get anywhere with your emoji movie, I am trying to set up a basic game with emoji images and would like to refer to them as numbers. I was thinking of setting up a table with the emoji details in so I could refer to the image by array index, is that what you did for your short video demo?

@Bri_G Here’s an example of an emoji table. It didn’t show here correct with the emojis in the table so I took them out. Just put some emojis between the “” in the table.

function setup()
    em={"","","","",""}
end

function draw()
    background(40, 40, 50)
    fill(255)
    fontSize(100)
    for z=1,#em do
        text(em[z],200,150*z)
    end
end

@dave - thanks, took the code right off of my fingers. Have now put 120 of these in an emoji list and can display them easily. It’s just like a sprite library, soon have a project set up for my granddaughter. Only problem now is I’m getting more requests.

All they need now is very basic so I can put things together fairly easily. Thanks again.

@Bri_G Here’s some code that displays a full screen emoji sprite and also allows you to view each of the emoji’s. Should save you the trouble of creating a table. You can probably modify this to create a table of emoji’s if you want. Run in landscape orientation.

function setup()
    print("1: This takes about 5 seconds to create the full screen emoji sprite")
    print("2: Slide the multi slider left to show individual emoji's")
    print("3: value1 slider is x 1")
    print("4: value2 slider is x 50")
    print("5: value1 + value2 * 50 = emoji value")
    
    parameter.boolean("multi",true)
    parameter.integer("value1",0,50,0)
    parameter.integer("value2",0,50,0)

    img=image(WIDTH,HEIGHT)
    fill(255)
    setContext(img)
    fontSize(15)
    cnt=127744
    for y=1,43 do
        for x=1,42 do
            text(utf(cnt),x*17,HEIGHT- y*17)
            cnt=cnt+1
        end
    end
    setContext()
end

function draw()
    background(40,40,50)
    fill(255)
    if multi then
        sprite(img,WIDTH/2,HEIGHT/2)
    else
        fontSize(30)
        text(value1+value2*50,WIDTH/2,HEIGHT-50)
        fontSize(400)
        cnt=127744
        text(utf(cnt+value1+value2*50),WIDTH/2,HEIGHT/2)
    end       
end

function utf(val)
    local b4 = val % 64 + 128
    local b3 = val // 64 % 64 + 128
    local b2 = val // 4096 % 64 + 128
    local b1 = val // 262144 + 240
    return string.char(b1, b2, b3, b4)
end

@dave1707 - thanks for that, I was wondering how to call the emojis from code, utf is the way.

I have built up a list of some 160 emojis, will add more later and then probably re-organise into sub groups. Using your simple display program above Modified to display them I have now a full page of the Apple emojis.

Tip, just add fontSize() before your text loop and put in any size you want. Instant image !!! Just tried it out and it worked. Qualitiy is excellent so I am assuming these emojis work on a vectored image basis.

Thanks again.

P.s. once you have a library, I use dependencies to pull out the emojis I need. This is cool.

@Bri_G Not sure what you mean with your Tip. Where are you putting the fontSize() that’s giving you excellent quality on the emoji.

@Bri_G Here’s the post you wanted moved. I deleted it in the other discussion. For some reason emoji’s don’t show and stop the text after them. I did the same thing a few post above. I had to remove the emoji’s from the table before the rest of the text would show. In my program above where I display the full screen of emoji’s, are you sliding the multi parameter slider and displaying the emoji’s one by one. I’m using fontsize(400) and they’re showing a little fuzzy.

PS. Bri-G, If you mess up a post you can re-edit it and make whatever changes you want. You could have gone in the post you wanted me to delete and removed all the text and just left the words “delete this post”. You then could have gone into the the discussion you wanted and put in the new text there. Anyways it no problem for me to delete posts. I’m always going into posts I make to correct spelling errors or just to add stuff.


@dave1707 - sorry there must be something in the code which is messing up the post. Trying without the emoji present just the speech marks, add your own emoji. Try changing fontSize().


function setup()
    --
    emoj = {""}
end

-- This function gets called once every frame
function draw()
    -- This sets a dark background color 
    background(40, 40, 50)
    fontSize(256)
    text(emoj[1], 364,512)
end
--Emojis

displayMode(FULLSCREEN)
supportedOrientations(LANDSCAPE_LEFT)
function setup()
    print("Hello World!")
    displayMode(FULLSCREEN)
    fill(246, 245, 245, 255)
    h = 1
    w = 1
    x=100
    y=100
    g=200
    hold = true   
    r1="\\u{1F6b4}" --byke
    r2 = "\\u{1F6b4}" --byke
    tr1 = "\\u{1F332}" --tree
    tr2 = "\\u{1F333}"
    tr3 = "\\u{1F335}"
    tr4 = "\\u{1F384}"
    x1=1000
    x2=1100
    x3=1200
    x4=1300
    r=1
    bh=1   
end

-- This function gets called once every frame
function draw()
    -- This sets a dark background color 
    background(40, 40, 50)

    -- This sets the line thickness
    strokeWidth(5)

    -- Do your drawing here
     background(51, 198, 34, 255)

    -- This sets the line thickness
    strokeWidth(5)
    
    if hold == false then h = h + 1 end
    if hold == false then w = w + 1 end
    if hold == false then x = x + 7 end
    if hold == false then g = g - 1 end
    if h > 200 then hold = true end
    if hold == true then  h = h - 1 end
    if hold == true then  w = w - 1 end
    if hold == true then  x = x - 7 end
    if hold == true then  g = g + 1 end
    if h < 10 then hold = false end
    
    -- Do your drawing here
    fontSize(200)
    text("\\u{1F31E}",x,750) --sun
    fontSize(100)
    text("\\u{1F45F}",50,50) --schuh
    text("\\u{1F3D0}",w*5,h*5) --ball
    text("\\u{1F3C0}",w*2,h*3)--ball
    bh=bh+1
    if bh > 900 then bh = 1 end
    text("\\u{1F388}",150,bh*3)
    text("\\u{1F682}",x,y)  --lok 
    text("\\u{1F683}",x+100,y) --wagon1
    text("\\u{1F683}",x+200,y) --wagon2
    text("\\u{1F683}",x+300,y) --wagon3
    fontSize(g)
    text("\\u{1F681}",900, 700) --heli
    text("\\u{1F3C1}",900,500)  --startflag  
    text("\\u{1F698}",100,550) --car
    text("\\u{1F696}",250,520)
    text("\\u{1F694}",400,490)
    text("\\u{1F68D}",550,460)
 --   text("\\u{1F388}",900,800) --ballon
    text("\\u{1F448}",900,200) --hand
    fontSize(100)
    text("ShowEmojis",550,250)
    x1 = x1 - math.random(7)
    x2 = x2 - math.random(7)
    x3 = x3 - math.random(7)
    x4 = x4 - math.random(7)
    if x4<0 then r=r+1 end
    r=tostring(r)
    if x1 < 0  then x1 = 1600 end
    if x2 < 0  then x2 = 1600 end
    if x3 < 0  then x3 = 1600 end
    if x4 < 0  then x4 = 1600 end
    fontSize(70)
    text(tr1,200,50) --trees
    text(tr2,250,50)
    text(tr3,300,50)
    text(tr4,350,50)
    text(tr1,400,50)
    text(tr2,450,50)
    text(tr3,500,50)
    text(tr4,550,50)
    text(tr1,600,50)
    text(tr2,650,50)
    text(tr3,700,50)
    text(tr4,750,50)
    text(tr1,800,50)
    text(tr2,850,50)
    text(tr3,900,50)
    text(tr4,950,50)
    text("Round "..r,600,900) -- Round counter
    fontSize(200)
    text("\\u{1F327}",300,750) --cloud1
    text("\\u{1F328}",600,750)--cloud2
   
    fontSize(150)
    -- Do your drawing here
    text(r1,x1,400) --byker
    text(r2,x2,350)
    text(r1,x3,300)
    text(r2,x4,250)   
    
end

function touched(t)
    if t.state == BEGAN then
    close()
end 
end

@dave1707 - posted reply in another thread. Just thought I may have raised this through my own ignorance - I know next to nothing about emojis other than their use on phones. For a project I downloaded an image of a thumbs up emoji and used it as a sprite on an intro cover. Then later I used the table of emojis to print up emojis on screen with text(). Then I thought ‘if you’re using text, why not see if fontSize() will change the emoji images size’- and it did. It also did in a surprising retention of quality - hence my surprise - must be vector images like TrueFonts. It’s like having a whole new sprite library.

So if you knew this already - just ignore my post.

@matox Thanks for the post. That’s an easy way to show the emoji’s instead of doing the calculations I was doing. I’ll have to modify my code above and see if it creates the emoji sprite faster.

I guess it’s been so long since I played with emoji’s that I forgot about this code I wrote back in March 2015. See the link below.

https://codea.io/talk/discussion/6435/utf8-character-values

@dave1707 - thanks for the post editin. I tried editing my post several times, pasting new code in to replace the old. Even tried it with a second post but it wouldn’t accept it. I think it must be some spurious characters in the emoji image code which corrupted the html. Below is my post for printing up a page of emojis. Unfortunately I can’t paste up my emoji table.


-- EmojiDisplay

displayMode(OVERLAY)
-- Use this function to perform your initial setup
function setup()
    -- 243
end

function draw()
    background(40, 40, 50)
    fill(255)
    fontSize(48)
    for y=1,20 do
        for x = 1,16 do
            text(emList[(y-1)*8+x],x*48-16,48*y)
        end
    end
end

@matox - now there is a completely new dimension to Codea. Thanks for posting it.

enlist does not seem to be working, there must have been some sort of change, does anyone know what the new command is ? I’m getting mil in the error msg

@kendog - this won’t work for you as it stands. The reference to emlist is to a table of emojis. Unfortunately I can’t post this here as the codes used don’t display properly, but I’ll show you how to do this:

  1. Set up a tab for the table of emojis.
  2. add
     emlist = {"","",""}

make the list of emojis cover all of your needs so add the required number of “”, characters in the table list - I have just placed three above.

  1. Place your cursor in the first pair of speech marks and press the emoji keyboard key then scroll through to the one you want and select it. You should now see your emoji character in-between the speech marks.
  2. Repeat the process with the second table speech mark entry with your second emoji icon. Et voila you’ve started your list.
  3. Fill all the entries of emojis into your table - note each one needs to be a single character in-between the speech marks.
  4. From your draw function you can the text() the table entries.

Note you need to use fontSize() to set the pixel size of your emoji and you need to precede the text() command with a fill(255,255,255,255) otherwise the image is transparent.

I have used this in a few threads - I’ll dig them out and post them for you when I find them.

Links:

emojis-again: First Link - Showsimage of listing in second thread entry

just-for-a-laugh

lockdown

Latter link has an emoji version of space invaders that I am still working on (whilst picking up tips from @RonJeffries and @dave1707 ).