Before writing this method off completely and from memory, the standard draw routines when compiled are significantly faster using TurboBasic, however I haven't yet compiled any of the turtle based commands, you might want to play around with either of those.

Another method to consider might be to have each plane text in its on window channel and although the the 'off screen' issue won't change, the coding and checking for each text location would be a little simpler.

Another thought that somebody else could help (as I am not familiar with it) is converting the text to graphic sprites as the are likely to be able to go 'off screen'.

Lee Privett

-------------------------------------------------------------
Sent from my Laptop running XP
but emulating the QL using QPC2
----- Original Message ----- From: "Plastic" <[email protected]>
To: <[email protected]>
Sent: Friday, February 11, 2011 9:36 AM
Subject: Re: [Ql-Users] Approaches to (lots of things!) in SuperBASIC


On Fri, Feb 11, 2011 at 3:19 AM, Lee Privett <[email protected]> wrote:

With regard to your text going off screen, one solution would be to use
(something I am currently working on but not yet finished) drawn text, using
either turtle graphics or line command etc.

In simple terms the algorythm below hopefully shows what I mean, and you
will need a draw routine for each character you are going to use, if you use variables in the draw routine then it makes it adaptable for resizing and it is also then possible to make the text proportional and at any angle as well as going completely off screen without error. Scale becomes a factor here.

DEFine FUNCTION DPRINT (x,y,text$)
REMark check each character in text$
 for f = 1 to length txt$
 Select on char
draw char at x,y coord:leave cursor x,y at same point plus length of char
in the direction you want the text to go
 end select
 end for f
REMark next char
END DEFine

There maybe suitable programs that do this, either in PD on Dilwyns site or from the Quanta Library however the one I have found does not work well for
me and I have not found anything else to do it.

I originally wrote the full function in Microsoft QuickBasic and it works
very well, but the process of converting to S*Basic is slow and a low
priority at the moment. If you want the QuickBasic version I am happy to
provide.


Lee Privett



I considered this approach and wrote a couple of test procedures. It was
very slow.

The best I have come up with is to construct the two strings for the two
lines of data, then, when I know the plotting position, I can know the
remaining width of the screen. At that point I can either limit the
caption's movement but allow the plane to fly on, or crop the strings
shorter by 1 character for each 6 pixels closer so only the individual
character at the edge of the screen blinks out.

I wish there was a PRINT_NE version of print that would not throw errors if things were off-window, and that would allow negative CURSOR and AT values.

Dave
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to