+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 10 of 12

Thread: Console screens help

  1. #1
    Wirererer Nikita is on a distinguished road Nikita's Avatar
    Join Date
    May 2009
    Posts
    364

    Console screens help

    Although I know how console screens work, I failed at every attempt to make them work. Either there would be extra spaces, or double characters, or XY of the char randomly changing, or nothing displaying, or even my text appearing backwards!

    I know this isn't a place where people would do your work for you, but could someone please show me the right way to make an expression2 connecting a keyboard and a console screen? So that what you type appears on the screen, rows automatically change, enter and backspace keys work as intended?

  2. #2
    Wire Sofaking SpectreCat will become famous soon enough SpectreCat's Avatar
    Join Date
    Mar 2008
    Location
    Arizona
    Posts
    448

    Re: Console screens help

    Here is how I usually do it

    if(KeyBoard & ~KeyBoard) {String += toChar(KeyBoard)}
    S:writeString(String,0,2,90)
    Last edited by SpectreCat; 07-09-2009 at 10:38 PM.

    New to the E2? Try my Tutorial:
    A Beginners Guide to Expression 2



    ***Please send a PM before you add me to friends***

    Quote Originally Posted by chinoto View Post
    E2 is not complicated, but many of the people who use it do complicated things with it.

  3. #3
    Wire Sofaking Officer Tibbles is on a distinguished road Officer Tibbles's Avatar
    Join Date
    Aug 2008
    Location
    San Diego, Kalifornien
    Posts
    500

    Re: Console screens help

    That always adds spaces between the characters whenever I do that.

    :|



  4. #4
    C# Programmer


    Matte is a jewel in the rough Matte is a jewel in the rough Matte is a jewel in the rough Matte is a jewel in the rough Matte's Avatar
    Join Date
    Jan 2009
    Location
    Norway
    Posts
    2,069

    Re: Console screens help

    Code:
    S:writeCell(Cell+1,1000999)
    if(~Mem&Mem&Mem<127&Mem>31){
    S:writeCell(Cell,Mem)
    S:writeCell(Cell+1,999)
    Cell+=2
    if(Cell>=958){
    S:writeCell(2038,1)
    S:writeCell(2046,1)
    Cell = 900
    }
    }
    
    This is what I basically use. It uses memory cells, and only writes if it's a writable character (127 > writable chars > 31). Also if you write to the second to last line, it scrolls the text upwards. I have not taken enter and backspace into account here, I just posted this example to give you the general idea of how it's usually done. This is not tested, but it should work.

  5. #5
    no brain, no headache

    -HP- has a spectacular aura about -HP- has a spectacular aura about -HP-'s Avatar
    Join Date
    Feb 2009
    Location
    Behind you with a very sharp knife.
    Posts
    1,196

    Re: Console screens help

    Here's mine. It allows you to backspace, enter, and hold down keys.

    Code:
    @name Console Screen Writer, by -HP-
    @inputs Keyboard Scr:wirelink
    @persist String:string X Y LineLength:array Timer:string
    
    if (first()) {
        X = 0
        Y = 0
        Scr:setNumber("Clk",1)
        Scr:setNumber("Reset",1)
        LineLength = array()
    }
    
    if (clk(toChar(Keyboard))) {
        timer(toChar(Keyboard),100)
        Timer = toChar(Keyboard)
    } elseif (~Keyboard) {
        stoptimer(Timer)
        timer(toChar(Keyboard),500)
        Timer = toChar(Keyboard)
    }
    
    if (clk(toChar(Keyboard)) | ~Keyboard) {
        if (Keyboard >= 32 & Keyboard <= 126) {
            if (X == 29 & Y == 17) { exit() }
            Scr:writeString(toChar(Keyboard),X,Y)
            X++
            LineLength:setNumber(Y,X)
            if (X == 30) {
                Scr:writeString(" ",X,Y,0,0,0)
                X = 0
                Y++
            }
            String = String + toChar(Keyboard)
        }
        
        if (Keyboard == 13) {
            Scr:writeString(" ",X,Y,0,0,0)
            Y++
            X = 0
            String = String + " "
        }
        
        if (Keyboard == 127) {
            Scr:writeString(" ",X,Y)
            if (X == 0 & Y > 0) {
                Y--
                X = LineLength:number(Y)
            } elseif (X > 0) {
                X--
                LineLength:setNumber(Y,X)
            }
            Scr:writeString(" ",X,Y)
            String = String:sub(1,String:length()-1)
        }
    }
    Scr:writeString(" ",X,Y,999,0,1)
    

  6. #6
    Wirererer warrior08 is on a distinguished road warrior08's Avatar
    Join Date
    Feb 2009
    Posts
    139

    Re: Console screens help

    Hy, a simple example

    Code:
    @name Console screen simple
    @inputs Button
    @outputs 
    @persist
    @trigger all
    
    runOnTick(1)
    
    if(Button){Screen:writeString("Hello world!",1,0,999)}
    



    Ps: Screen:writeString("..Text.."),Enable/Disable (1/0),Line,color

    good bye
    Last edited by warrior08; 07-10-2009 at 06:50 AM.

  7. #7
    Wirererer Nikita is on a distinguished road Nikita's Avatar
    Join Date
    May 2009
    Posts
    364

    Re: Console screens help

    Quote Originally Posted by -HP- View Post
    Here's mine. It allows you to backspace, enter, and hold down keys.
    Awesome! This works perfectly. Up to this moment I didn't even know there was scr:writeString function! Despite re-reading E2 wiki many times...
    Do you mind if I use this in my projects? Or should I make my own?

  8. #8
    Wirererer warrior08 is on a distinguished road warrior08's Avatar
    Join Date
    Feb 2009
    Posts
    139

    Re: Console screens help



    no problem

  9. #9
    no brain, no headache

    -HP- has a spectacular aura about -HP- has a spectacular aura about -HP-'s Avatar
    Join Date
    Feb 2009
    Location
    Behind you with a very sharp knife.
    Posts
    1,196

    Re: Console screens help

    Quote Originally Posted by Nikita View Post
    Awesome! This works perfectly. Up to this moment I didn't even know there was scr:writeString function! Despite re-reading E2 wiki many times...
    Do you mind if I use this in my projects? Or should I make my own?
    I don't mind if you use this in your projects, just make a tiny comment saying "Using -HP-'s Console Screen Writing system" or something like that

    Also I should be improving this, I'll PM you with a better version.

    Quote Originally Posted by warrior08 View Post


    no problem

  10. #10
    Wire Sofaking Donkie is on a distinguished road Donkie's Avatar
    Join Date
    May 2008
    Location
    Sweden ofc
    Posts
    589

    Re: Console screens help

    Warrior fails extremly :P Also what the heck is that memory thing? -.-
    Quote Originally Posted by l3ulletje View Post
    Because making a thing which makes a thing saves you from ever have to make a thing again, you just tell your thing to make a thing and you have your new thing ready to use for something.
    Edit: But then again, a thing which can make everything is a unthinkable thing, I do think I can think of something which your thing can't make.

+ Reply to Thread
Page 1 of 2
1 2 LastLast

Similar Threads

  1. Console Screens & strings
    By AndyDLP in forum Help & Support
    Replies: 14
    Last Post: 06-14-2009, 12:18 PM
  2. I cant see Screens
    By samwilki in forum Help & Support
    Replies: 3
    Last Post: 10-21-2008, 10:25 PM
  3. More Variety for Screens
    By -=Fox=- in forum Ideas & Suggestions
    Replies: 8
    Last Post: 04-11-2008, 04:56 PM
  4. Screens
    By Hysteria100 in forum Ideas & Suggestions
    Replies: 8
    Last Post: 02-26-2008, 11:10 AM
  5. XYZ screens
    By soulie in forum Advanced Gates
    Replies: 5
    Last Post: 11-17-2007, 04:51 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts