Try this http://pastebin.com/SHDLze3d
Basically the cLEDText works with a window, but this window can be bigger or smaller than the matrix it is attached to. So as you can see in the code I have increased the width of the extra Msg’s but also set there origins to be negative.
Tried the sketch…the text scrolled extremely slow and only on the left panel I had to edit 3 instances it said scrollingmsg.fontsize I changed to the appropriate msg as I was getting compile error here is te updated version http://pastebin.com/KT9S31RG
Sorry, my stupid mistake!
Also you need to move the ‘}’ that is after:
MsgLeft.UpdateText();
MsgFront.UpdateText();
MsgRight.UpdateText();
to before these calls. Then it should work across the left, front & right faces correctly.
If you want to speed it up reduce the delay from 1000 to say 100.
that’s pretty cool
thanks and looking at it I figured out how it works thanks for all your help
ok maybe not fully
it seems the left message is starting when the right message is MsgLeft.Init(&MatrixLeft, MatrixLeft.Width(), MsgLeft.FontHeight() + 1, 0, 0); and I changed it to
MsgLeft.Init(&MatrixLeft, MatrixLeft.Width(), MsgLeft.FontHeight() + 1,(MatrixLeft.Width() + -MatrixFront.Width()), 0);
now the left message starts at the end of the right message but cant move no further are the last 2 variables defining a starting place or is it more of an offset
ok figured it out had the wrong offset
Good, well done.
For clarity…
The first 2 parameters after the Matrix variable are the width and height of the text area.
The next 2 parameters are the X and Y matrix position of the text area.
So in your code we set the front and right text areas to be progressively bigger but offset them negatively by the same amount. This allows you to use the same message data array for each face and still have it line up correctly.
BTW, not sure if you have worked this out but you can use the any cLEDMatrix variable with (X, Y) to set any pixel on a face:-
MatrixLeft(0, 0) = CHSV(16-, 255, 255);
This should help you write your own custom effects or modify existing code to work on any face of the cube using the appropriate matrix variable.
No have not got there yet but I will thanks again for all your help
Ok so I thought I had this whole offset thing down I wanted to get the back Matrix to display as well and I accomplished it but it triggers at the wrong time it is triggering at the beginning of the left Matrix
here is what I originally had MsgBack.Init(&MatrixBack, MatrixLeft.Width(), MsgBack.FontHeight() + 1,0,0);
and I changed it to this
MsgBack.Init(&MatrixBack, MatrixLeft.Width(), MsgBack.FontHeight() + 1,MatrixLeft.Width(),0);
figuring it would give me the offset I needed but the above don’t work at all I can not figure out why
This is what you need:
MsgBack.Init(&MatrixBack, MatrixLeft.Width() + MatrixFront.Width() + MatrixRight.Width() + MatrixBack.Width(), ScrollingMsg.FontHeight() + 1, -(MatrixLeft.Width() + MatrixFront.Width() + MatrixRight.Width()), 0);
We are telling MsgBack that its window is 32 leds wide and that its origin is -24, so only the last 8 leds will be visible. You could put absolute values in the code if you want as this would make it easier to read but by using the Width() function the source could be easily changed to use a different size of matrix.
Ah thanks for the explanation after playing with that code I now see why it didn’t work for me