BBC BASIC
« Splash Screen Competition »

Welcome Guest. Please Login or Register.
Mar 31st, 2018, 10:42pm



ATTENTION MEMBERS: Conforums will be closing it doors and discontinuing its service on April 15, 2018.
We apologize Conforums does not have any export functions to migrate data.
Ad-Free has been deactivated. Outstanding Ad-Free credits will be reimbursed to respective payment methods.

Thank you Conforums members.
Cross-platform BBC BASIC (Windows, Linux x86, Mac OS-X, Android, iOS, Raspberry Pi)
BBC BASIC Resources
BBC BASIC Help Documentation
BBC BASIC for Windows Home Page
BBC BASIC Programmers' Reference
BBC BASIC Beginners' Tutorial
BBC BASIC for SDL 2.0 Home Page
BBC BASIC Discussion Group

« Previous Topic | Next Topic »
Pages: 1  Notify Send Topic Print
 thread  Author  Topic: Splash Screen Competition  (Read 225 times)
Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Splash Screen Competition
« Thread started on: Jan 21st, 2018, 10:41am »

The Android edition's User Interface is very minimalist, which I like and which I think suits BBC BASIC. However if we ever had ambitions of making it available via the Google Play Store this would never meet their requirements; it doesn't even announce the name or version of the app!

Therefore it would be highly desirable to display a splash screen on startup, either for a fixed period of time or until dismissed with a tap. Unfortunately I do not have an artistic bone in my body, so I am announcing a competition to design such a splash screen.

There are very few constraints on what the splash screen should look like:
  • First impressions count, so it should look attractive and professional.

  • It should contain the name of the app ('BBC BASIC'') and a version number that can easily be patched by me without upsetting the background.

  • It should work well on a wide range of display sizes and formats, for example it must be suitable for both landscape and portrait orientation.

  • Any logos or clip-art must be free from licensing restrictions.
Ideally it should be delivered in the form of a simple BMP file, but if there are dynamic elements or things that need to be adapted according to orientation I will accept some accompanying BASIC code.

I will close the competition and choose the winner (assuming more than one entry!) on 1st February, so you have about ten days to create something wonderful. If you think that isn't long enough, let me know.

There's no prize as such, other than knowing that your creation will be displayed whenever anybody starts the app . You can sign the work if you like, so long as you do so discreetly. I reserve the right not to use any of the submissions if I don't think they are up to scratch.

Richard.
« Last Edit: Jan 21st, 2018, 11:21am by Richard Russell » User IP Logged

DDRM
Global Moderator
ImageImageImageImageImage


member is offline

Avatar




PM


Posts: 36
xx Re: Splash Screen Competition
« Reply #1 on: Jan 22nd, 2018, 4:07pm »

Hi Richard,

Would it be acceptable/desirable to include your own RTR and BBC Basic (i.e. the little computer) logos?

What sort of resolution would you want, bearing in mind the potentially large range of devices displaying it?

I note you say a BMP file, but would/could a BASIC - generated image automatically result in sensible scaling to the screen size/orientation?

Best wishes,

D
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Re: Splash Screen Competition
« Reply #2 on: Jan 22nd, 2018, 6:39pm »

on Jan 22nd, 2018, 4:07pm, DDRM wrote:
Would it be acceptable/desirable to include your own RTR and BBC Basic (i.e. the little computer) logos?

I have no strong feelings either way. I specifically don't want to be too prescriptive to avoid constraining anybody's 'creative juices'. However, logos could be challenging in respect of the 'aspect-ratio independence' requirement.

Quote:
What sort of resolution would you want, bearing in mind the potentially large range of devices displaying it?

Again I don't want to be prescriptive. If it's all nicely anti-aliased 'continuous tone' graphics (which is the sort of thing I'm hoping for) then scaling artefacts are not likely to be too much of a problem and I would be surprised if it needs to be more than 'full HD' (1920x1080 pixels) say.

Quote:
I note you say a BMP file, but would/could a BASIC - generated image automatically result in sensible scaling to the screen size/orientation?

I've got nothing against a "BASIC-generated image" (partially, anyway) but in my experience artistic talent and programming skills rarely coincide in the same person! A fully 'BBC BASIC graphics' solution might risk looking tacky.

Richard.
User IP Logged

svein
New Member
Image


member is offline

Avatar




PM


Posts: 15
xx Re: Splash Screen Competition
« Reply #3 on: Jan 23rd, 2018, 11:38pm »

Here's my contribution, a BB4W program who generates a BMP file.
There's some example texts at the beginning.
You'll need to correct the version number.
This should tick all the boxes, except maybe the artistic one.

Svein.

Code:
      DATA 80,1,"BBC Basic"
      REM DATA 20,0,"Android edition 1.0"
      REM DATA 20,0,"for Android. Version 1.0"
      DATA 20,0,"Version 1.0"
      DATA 0,0,""

      Font$="Cambria"
      File$=@tmp$+"Splash.bmp"
      Height%=@vdu%!212*2
      Cx%=0 : Cy%=0
      DIM Size{cx%,cy%}

      COLOUR 0,0,0,0     : REM variables, names
      COLOUR 1,&FF,0,0   : REM Def
      COLOUR 2,0,&99,0   : REM Rem
      COLOUR 3,&FF,&66,0 : REM Keywords
      COLOUR 4,&FF,0,&FF : REM Strings
      s$=STRING$(4," ")
      ss$=STRING$(8," ")
      OSCLI "FONT smallfont,6"
      PRINT
      COLOUR 2 : PRINT s$+"REM Carve the text if B%=1"
      COLOUR 1 : PRINT s$+"DEF ";: COLOUR 3 : PRINT "PROC";: COLOUR 0 : PRINT "emboss(a$,X%,Y%,B%)"
      COLOUR 3 : PRINT s$+"LOCAL ";: COLOUR 0 : PRINT "I%"
      COLOUR 3 : PRINT s$+"FOR ";: COLOUR 0 : PRINT "I%=1 ";: COLOUR 3 : PRINT "TO LEN";: COLOUR 0 : PRINT "(a$)"
      COLOUR 3 : PRINT ss$+"MOVE ";: COLOUR 0 : PRINT "X%,Y%"
      COLOUR 3 : PRINT ss$+"OSCLI ";: COLOUR 4 : PRINT """FONT """;: COLOUR 0 : PRINT "+Font$+";: COLOUR 4 : PRINT """,""";
      COLOUR 0 : PRINT "+";: COLOUR 3 : PRINT "STR$";: COLOUR 0 : PRINT "Size%+";: COLOUR 4 : PRINT """,BI"""
      COLOUR 3 : PRINT ss$+"PROC";: COLOUR 0 : PRINT "findtxtsize(Size{},";: COLOUR 3 : PRINT "MID$";: COLOUR 0 : PRINT "(a$,I%,1))"
      COLOUR 3 : PRINT ss$+"GCOL ";: COLOUR 0 : PRINT "0 : ";: COLOUR 3 : PRINT "PRINT MID$";: COLOUR 0 : PRINT "(a$,I%,1);"
      COLOUR 3 : PRINT ss$+"MOVE ";: COLOUR 0 : PRINT "X%+2,Y%-2"
      COLOUR 3 : PRINT ss$+"OSCLI ";: COLOUR 4 : PRINT """FONT """;: COLOUR 0 : PRINT "+Font$+";: COLOUR 4 : PRINT """,""";
      COLOUR 0 : PRINT "+";: COLOUR 3 : PRINT "STR$";: COLOUR 0 : PRINT "(Size%-3)+";: COLOUR 4 : PRINT """,BI"""
      COLOUR 3 : PRINT ss$+"GCOL ";: COLOUR 0 : PRINT "7 : ";: COLOUR 3 : PRINT "IF ";: COLOUR 0 : PRINT "B%=1 ";
      COLOUR 3 : PRINT "PRINT MID$";: COLOUR 0 : PRINT "(a$,I%,1);"
      COLOUR 0 : PRINT ss$+"X%+=Size.cx%*2"
      COLOUR 3 : PRINT s$+"NEXT"
      COLOUR 3 : PRINT s$+"ENDPROC"

      VDU 5
      READ Size%,B%,a$
      WHILE Size%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},a$)
        IF Size.cx%*2>Cx% THEN Cx%=Size.cx%*2
        Cy%+=Size.cy%*2
        IF B% THEN
          PROCemboss(a$,20,Height%,1)
        ELSE
          PROCemboss(a$,Cx%/2-Size.cx%,Height%-Cy%/1.4,0)
        ENDIF
        READ Size%,B%,a$
      ENDWHILE

      GCOL 0
      RECTANGLE 2,Height%-Cy%+2,Cx%+34,Cy%-6
      RECTANGLE 6,Height%-Cy%+6,Cx%+26,Cy%-14
      OSCLI "SCREENSAVE """+File$+""" "+"0,"+STR$(Height%-Cy%)+","+STR$(Cx%+40)+","+STR$(Cy%)
      SYS "ShellExecute",@hwnd%,"open",File$,0,0,1
      QUIT

      REM Carve the text if B%=1
      DEF PROCemboss(a$,X%,Y%,B%)
      LOCAL I%
      FOR I%=1 TO LEN(a$)
        MOVE X%,Y%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},MID$(a$,I%,1))
        GCOL 0 : PRINT MID$(a$,I%,1);
        MOVE X%+2,Y%-2
        OSCLI "FONT "+Font$+","+STR$(Size%-3)+",BI"
        GCOL 7 : IF B%=1 PRINT MID$(a$,I%,1);
        X%+=Size.cx%*2
      NEXT
      ENDPROC

      DEF PROCfindtxtsize(s{},a$)
      SYS "GetTextExtentPoint32", @memhdc%, a$, LEN(a$), s{}
      ENDPROC
 
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Re: Splash Screen Competition
« Reply #4 on: Jan 24th, 2018, 08:20am »

on Jan 23rd, 2018, 11:38pm, svein wrote:
Here's my contribution

Thank you. That makes a total of three entries so far.

Is there a simple change I can make to your code to see what it would look like in portrait orientation?

Richard.
User IP Logged

svein
New Member
Image


member is offline

Avatar




PM


Posts: 15
xx Re: Splash Screen Competition
« Reply #5 on: Jan 27th, 2018, 11:47am »

Quote:
Is there a simple change I can make to your code to see what it would look like in portrait orientation?

Is it not easier to just rotate it with Photos, Photo gallery or Paint ?

Here's a slightly more artistic multicolour version.
On a 1920*1080 screen the max font size is about 200/50, (using the standard bbc output window) resulting in a 1194*390 bmp. Very slow !
I think this is my last contribution. Out of ideas.

Svein

Code:
      DATA 100,1,"BBC Basic"
      REM DATA 10,0,"Android edition 1.0"
      REM DATA 15,0,"for Android. Version 1.0"
      DATA 25,0,"Version 1.0"
      DATA 0,0,""

      Font$="Cambria"
      File$=@tmp$+"Splash.bmp"
      Height%=@vdu%!212*2
      Cx%=0 : Cy%=0
      DIM Size{cx%,cy%}

      REM calculate size of bmp
      READ Size%,B%,a$
      WHILE Size%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},a$)
        IF Size.cx%*2>Cx% THEN Cx%=Size.cx%*2
        Cy%+=Size.cy%*2
        READ Size%,B%,a$
      ENDWHILE
      Cx%+=40
      RESTORE

      REM multicolour background
      GCOL 1
      FOR X%=0 TO Cx%
        FOR Y%=0 TO Cy%
          COLOUR 1,256/Cx%*X%,256-256/Cx%*X%,256/Cy%*Y%
          PLOT X%,Height%-Y%
        NEXT
      NEXT

      REM fading wave
      C=255
      FOR X%=9 TO Cx%-9
        C-=255/Cx%*0.7
        COLOUR 1,C-50,C-25,C
        PLOT X%,SINRAD(X%)*Cy%/4+Height%-Cy%/1.5
        DRAW X%,COSRAD(X%)*Cy%/8+Height%-Cy%/1.5
      NEXT

      REM the text
      VDU 5
      Top%=Height%
      READ Size%,B%,a$
      WHILE Size%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},a$)
        IF B% THEN
          PROCemboss(a$,20,Top%,1)
        ELSE
          PROCemboss(a$,Cx%/2-Size.cx%,Top%,0)
        ENDIF
        IF B%=1 THEN Top%-=Size.cy%*1.75 ELSE Top%-=Size.cy%*2
        READ Size%,B%,a$
      ENDWHILE

      REM create bmp
      GCOL 0
      RECTANGLE 2,Height%-Cy%+2,Cx%-6,Cy%-6
      RECTANGLE 6,Height%-Cy%+6,Cx%-14,Cy%-14
      OSCLI "SCREENSAVE """+File$+""" "+"0,"+STR$(Height%-Cy%)+","+STR$(Cx%)+","+STR$(Cy%)
      SYS "ShellExecute",@hwnd%,"open",File$,0,0,1
      QUIT

      REM Carve the text if B%=1
      DEF PROCemboss(a$,X%,Y%,B%)
      LOCAL I%
      FOR I%=1 TO LEN(a$)
        MOVE X%,Y%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},MID$(a$,I%,1))
        GCOL 0 : PRINT MID$(a$,I%,1);
        MOVE X%+2,Y%-2
        OSCLI "FONT "+Font$+","+STR$(Size%-6)+",BI" : REM changed from -3 to -6, looks better
        GCOL 7 : IF B%=1 PRINT MID$(a$,I%,1);
        X%+=Size.cx%*2
      NEXT
      ENDPROC

      DEF PROCfindtxtsize(s{},a$)
      SYS "GetTextExtentPoint32", @memhdc%, a$, LEN(a$), s{}
      ENDPROC

 

« Last Edit: Jan 27th, 2018, 12:09pm by svein » User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Re: Splash Screen Competition
« Reply #6 on: Jan 27th, 2018, 5:00pm »

on Jan 27th, 2018, 11:47am, svein wrote:
Is it not easier to just rotate it with Photos, Photo gallery or Paint ?

That would rotate the text as well! It will generally be unacceptable to 'rotate' the splash screen (unless the text is drawn on afterwards) which is why I asked for a graphic that could be stretched (or cropped) to a wide range of aspect ratios without looking silly.

I find it interesting that every submission I have received so far has shown the splash screen in landscape format, whereas almost everybody will be seeing it in portrait format on their phones. Indeed, my Android phone locks the screen to portrait whenever the 'home' screen is displayed, so I can't launch BBC BASIC in landscape format at all.

Admittedly an Android tablet is more likely to be landscape orientation, but there are many more phones than tablets!

Quote:
Here's a slightly more artistic multicolour version

Thanks, I like it, but again I don't think it will work very well stretched or cropped.

Richard.
« Last Edit: Jan 27th, 2018, 5:34pm by Richard Russell » User IP Logged

svein
New Member
Image


member is offline

Avatar




PM


Posts: 15
xx Re: Splash Screen Competition
« Reply #7 on: Jan 27th, 2018, 8:05pm »

Ok, made the background square, removed the frame, centered the text and made it half size of square.
Do you think it will stretch and crop better now ?

You may of course use and modify the code as you see fit.

Svein

Code:
      DATA 40,1,"BBC Basic"
      REM DATA 10,0,"Android edition 1.0"
      REM DATA 15,0,"for Android. Version 1.0"
      DATA 15,0,"Version 1.0"
      DATA 0,0,""

      Font$="Cambria"
      File$=@tmp$+"Splash.bmp"
      Height%=@vdu%!212*2
      Cx%=0 : Cy%=0
      DIM Size{cx%,cy%}

      REM calculate size of bmp
      READ Size%,B%,a$
      WHILE Size%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},a$)
        IF Size.cx%*2>Cx% THEN Cx%=Size.cx%*2
        Cy%+=Size.cy%*2
        READ Size%,B%,a$
      ENDWHILE
      Cx%*=2 : Cy%=Cx%
      RESTORE

      REM multicolour background
      GCOL 1
      FOR X%=0 TO Cx%
        FOR Y%=0 TO Cy%
          COLOUR 1,256/Cx%*X%,256-256/Cx%*X%,256/Cy%*Y%
          PLOT X%,Height%-Y%
        NEXT
      NEXT

      REM fading wave
      C=255
      FOR X%=9 TO Cx%-9
        C-=255/Cx%*0.7
        COLOUR 1,C-50,C-25,C
        PLOT X%,SINRAD(X%)*Cy%/4+Height%-Cy%/1.5
        DRAW X%,COSRAD(X%)*Cy%/8+Height%-Cy%/1.5
      NEXT

      REM the text
      VDU 5
      READ Size%,B%,a$
      OSCLI "FONT "+Font$+","+STR$Size%+",BI"
      PROCfindtxtsize(Size{},a$)
      Top%=Height%-Cy%/2+Size.cy%
      WHILE Size%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},a$)
        PROCemboss(a$,Cx%/2-Size.cx%,Top%,B%)
        IF B%=1 THEN Top%-=Size.cy%*1.75 ELSE Top%-=Size.cy%*2
        READ Size%,B%,a$
      ENDWHILE

      REM create bmp
      GCOL 0
      REM RECTANGLE 2,Height%-Cy%+2,Cx%-6,Cy%-6
      REM RECTANGLE 6,Height%-Cy%+6,Cx%-14,Cy%-14
      OSCLI "SCREENSAVE """+File$+""" "+"0,"+STR$(Height%-Cy%)+","+STR$(Cx%)+","+STR$(Cy%)
      SYS "ShellExecute",@hwnd%,"open",File$,0,0,1
      QUIT

      REM Raise the text if B%=1
      DEF PROCemboss(a$,X%,Y%,B%)
      LOCAL I%
      FOR I%=1 TO LEN(a$)
        MOVE X%,Y%
        OSCLI "FONT "+Font$+","+STR$Size%+",BI"
        PROCfindtxtsize(Size{},MID$(a$,I%,1))
        GCOL 0 : PRINT MID$(a$,I%,1);
        MOVE X%+2,Y%-2
        OSCLI "FONT "+Font$+","+STR$(Size%-6)+",BI"
        GCOL 7 : IF B%=1 PRINT MID$(a$,I%,1);
        X%+=Size.cx%*2
      NEXT
      ENDPROC

      DEF PROCfindtxtsize(s{},a$)
      SYS "GetTextExtentPoint32", @memhdc%, a$, LEN(a$), s{}
      ENDPROC

 

User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Re: Splash Screen Competition
« Reply #8 on: Jan 27th, 2018, 8:30pm »

on Jan 27th, 2018, 8:05pm, svein wrote:
Ok, made the background square, removed the frame, centered the text and made it half size of square.

Thanks, I'll add it to the set for consideration. I've had quite a few entries but no clear front-runner; there's still time if anybody else wants to submit their creation.

Richard.
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 803
xx Re: Splash Screen Competition
« Reply #9 on: Feb 1st, 2018, 8:24pm »

Many thanks to those who submitted splash screens for this competition; there were more entries than I anticipated in fact. There has been quite a variety of styles, from the minimalist to the complex, and from the tasteful to the garish!

I have found it impossible to choose just one, so instead I have whittled them down to a shortlist of three. I will create a poll to seek other people's opinions.

Richard.
User IP Logged

Pages: 1  Notify Send Topic Print
« Previous Topic | Next Topic »

| |

This forum powered for FREE by Conforums ©
Terms of Service | Privacy Policy | Conforums Support | Parental Controls