ハンブルソフト サポート掲示板
有限会社ハンブルソフトの製品関連の疑問に答える掲示板です。
自己レスです。
> https://github.com/h-nari/Humblesoft_LedMat/blob/master/src/ScrollText.cpp#L65
>
>これを1列づつ表示させているので、
というアドバイスを頂きましたので、「ScrollText.cpp」を変更して影文字を表示させました。画像を添付します。
元々のプログラムは、次のようになっており、m_bitmap.getPixel関数で0,1を判断し、TextColorとTextBGcolorのどちらかを設定しています。
if(m_oy +y >= 0 && m_oy + y < m_sch) {
m_led->drawPixel(m_xi, m_scy + m_oy + y,
m_bitmap.getPixel(m_ri, y) ? m_cText : m_cBg);
}
これを改良して、1ドットずらした位置をチェックしてTextBGcolorで描画、
その後、TextColorで描画するようにして対応しました。
以下が変更点です。(ScrollText.cppの91行目から)
座標のチェックなどしていないため、もしかするとまだ不具合があるかもしれません。
if(m_ri < m_gw){
for(int y = 0; y < m_gh; y++){
////変更ここから////
if( m_cBg != 0 ){
if(m_oy +y-1 >= 0 && m_oy + y-1 < m_sch) {
if( m_bitmap.getPixel(m_ri-1, y)!= 0 ){
m_led->drawPixel(m_xi, m_scy + m_oy + y - 1, m_cBg );
}
}
}
if(m_oy +y >= 0 && m_oy + y < m_sch) {
if( m_bitmap.getPixel(m_ri, y)!= 0 ){
m_led->drawPixel(m_xi, m_scy + m_oy + y, m_cText );
}
}
}
////変更ここまで////
m_ri++;
}
ただし、処理が多くなる分、一瞬処理のため止まります。今後の課題です。