iSend, my first project!

Hello everyone! I have some exiting news about my new app, iSend! It features:

  • An iSend bot that replies to your messages! (Only some messages as of yet.)
  • A little game to entertain you and to make the app a bit more “colourful”
  • Accounts!
  • Some secret messages and commands, hehe :slight_smile:
  • A very smooth, functional, cool looking menu page!

Any questions just ask, I am updating this app in many ways, I hope you like it!
Any feedback would be great!

Enjoy!


    function setup()
    unlocked = false
    
    Admin_Name = "iSend"
    Admin_Message = "Hi! Welcome to iSend!"
    botMessages = "Hi! Welcome to iSend!"
    p_ball = physics.body(CIRCLE, 25)
    p_ball.x = WIDTH/2
    p_ball.y = HEIGHT - 100
    ballD = 50
    p_ball.gravityScale = 2
    p_ball.restitution = 0.8

    l = physics.body(EDGE,vec2(0,0), vec2(0,HEIGHT))
    r = physics.body(EDGE,vec2(WIDTH, 0),vec2(WIDTH, HEIGHT))
    t = physics.body(EDGE,vec2(0, HEIGHT),vec2(WIDTH,HEIGHT))
    f = physics.body(EDGE,vec2(0,50),vec2(WIDTH,50))
    treeTrunk = physics.body(EDGE, vec2(300, 375), vec2(415, 375))
     pActionName = "Login"
    words = ""
    parameter.text("Username", "Guest")
    parameter.action(pActionName, logged)
    parameter.action("Exit", function() close()end)
    parameter.action("Options", optionsPressed)
    Ball_Color = color(255, 26, 0, 255)
end
function draw()
    
    background(0, 195, 255, 255)
    pushStyle()
fill(34, 148, 27, 255)
    rectMode(CENTER)
rect(WIDTH/2, 150, 1000, 400)    
    sprite("Project:tree", WIDTH/2, HEIGHT/2, 500) 
    pushStyle()
    fill(0, 22, 255, 255)
    rectMode(CENTER)
--rect(WIDTH/2, HEIGHT/2, 500, 50)
    popStyle()
scale()
    textMode(CORNER)
pushStyle()
    fill(Ball_Color)
    strokeWidth(5)
    stroke(255, 255, 255, 255)
    ellipseMode(CENTER)
    ellipse(p_ball.x, p_ball.y, ballD)
    popStyle()
    end
function logged()
  if logged then
        output.clear()
        print("Welcome to iSend, "..Username.."!")
        parameter.clear()
        parameter.action("Logout", loggedOut)
        parameter.text("Message")
        parameter.action("Send", Sent)
        parameter.action("Clear", function() output.clear()end)
        end
    end 
function Sent()
    if Sent then
        print("["..Username.."]"..": "..Message)
end
    if Sent and Message == "Hi" then
        print("[iSend]: Hi! Welcome to iSend")
        elseif Sent and Message == "How are you?" then
print("[iSend]: Great! How are you?")
        elseif Sent and Message == "Im good" then
print("[iSend]: Thats Great! :)")
        elseif Sent and Message == "What gender are you?" then
print("[iSend]: I dont have a gender. :(")
        elseif Sent and Message == "Why dont you have a gender?" then
print("[iSend]: Because im a robot")
        elseif Sent and Message == "Whats 9+10?" then
print("[iSend]: 21! Oh wait, no its not. :/")
        elseif Sent and Message == "Tell me a joke" then
print("[iSend]: I dont know many, here's one!\
 Why are Pirates so scary? \
\
 Because they Arrrr!")
        elseif Sent and Message == "Haha that was funny!" then
print("[iSend]: Haha, thanks!")
        elseif Sent and Message == "Goodbye" then
print("[iSend]: Ok, See ya!")
        elseif Sent and Message == "Open up command prompt" then
        unlocked = true
print("[iSend]: You need a password for that.") 
        
        end
    if unlocked == true and Sent and Message == "1234" then
        parameter.action("Open Prompt", prompt)

        
    
    end
            end
        

    
    if Sent then
        
    end
    if Sent and Message == "/iSend-tool_openTool:beginProgram" then
        alert("Data Inversion failed. Try again later. Press OK to Finish.","iSend Hacking Software")
        output.clear()
        parameter.clear()
        print("Gathering Packets: 0/1192\
\
 //var; eraseData()\
\
{\
\
}}#\
status:9/10 opticalGauze()\
\
 deviceInfo = unknownDevice\
installingProgramData1/10\
6/10\
\
\
Ending...")
        print("...")
print("ERROR")
        error("Data Inversion failed. Try again later")

    end



function loggedOut()
    if loggedOut then
        output.clear()
        parameter.clear()
        parameter.text("Username", "Guest")
        parameter.action(pActionName, logged)
        parameter.action("Exit", function() close()end)
        parameter.action("Options", optionsPressed)
    end
end

function keyboard(key)
    
end

function touched(t)
    if t.state == BEGAN then
        if t.y > HEIGHT-200 then
            p_ball.linearVelocity = vec2(p_ball.linearVelocity.x,p_ball.linearVelocity.y + math.random(500,700))
        end
        if t.y < 200 then
            p_ball.linearVelocity = vec2(p_ball.linearVelocity.x,p_ball.linearVelocity.y + math.random(-700,-500))
        end
        if t.x < 200 then
            p_ball.linearVelocity = vec2(p_ball.linearVelocity.x + math.random(-700,-500),p_ball.linearVelocity.y)
        end
        if t.x > WIDTH-200 then
            p_ball.linearVelocity = vec2(p_ball.linearVelocity.x + math.random(500,700),p_ball.linearVelocity.y)
        end
    end
end

function optionsPressed()
    if optionsPressed then
        parameter.clear()
parameter.action("Back", loggedOut)
        parameter.color("Ball Color", Ball_Color)
        parameter.action("About", function() alert("iSend, a very cool messaging app that is getting better and better by updates. Many more features to come!\
\
iSend, created by LL_Phoenix456\
Version 1.0", "About")end)
    end
end

function prompt()
    if prompt then
    parameter.clear()
            parameter.text("Command")
parameter.action("Input", input)
    end
    if input and Command == "lol" then
        close()
    end
end

:slight_smile:

I can see you’re enjoying yourself!

Your messages and replies should go in a table, which will make your code much easier to manage

About apps getting better and better in the alert I have to agree, because it’s your first project very well written…

Yes, thankyou! I have been putting a lot of effort into this, and I will update the phrases into tables, and you were right, practise, patience and failing is key. Because you learn from your mistakes.

And from others you could learn to…

Do not use: string.len(txt)
Use: #txt