标题:如何在linux下用C语言实现字幕的左右滚动?
只看楼主
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
结帖率:100%
已结贴  问题点数:20 回复次数:8 
如何在linux下用C语言实现字幕的左右滚动?
我想过每隔0.1秒,让当前 x 坐标++(--),但是不清楚代码怎样写。还望大家给点代码,参考下~~~谢谢
在linux下有些移动坐标的库是没有的,所以只能全靠手写。
搜索更多相关主题的帖子: 字幕 高人 滚动 
2009-07-28 11:04
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
得分:10 
libcurse貌似是这么写的。

这个包可以实现你要的那个功能。

控制台的编程。

生命不熄,战斗不止.
2009-07-28 11:16
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
得分:0 
这个库能不能在uClinux下跑,我准备把编译的程序放到uClinux下面运行,uClinux是不支持动态分配内存的。能不能给个代码实例
2009-07-28 12:11
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:10 
如果uClinux用的是标准终端驱动的话,查询你使用的终端的功能代码。如果用的是LCD驱动的话,查询驱动程序相应的接口。

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-07-28 17:18
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
得分:0 
我想复杂了,其实用一个三维数组就可以实现滚屏了,把这个矩阵直接用视频设备打开即可,然后不断操作这个数组里的元素位置,就实现了滚屏效果。有一维是用来表示这个像素点的灭或亮。
2009-07-29 13:30
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
哦,看来是个fb。

的确直接mmap是最简单的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2009-07-29 17:44
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
得分:0 
有curses怎么不用呢?

#include <stdio.h>
#include <string.h>
#include <curses.h>
#include <unistd.h>

#define  LEFT           1
#define  RIGHT          30 * 2
#define  ROW            40 / 2

 int main(void)
{

        char  * msg = "<Hello world>" ;
        char  * blank = "             " ;
        int   dir = 1 ;
        int   curpos = LEFT ;
        int   slen = strlen(msg) ;
        initscr() ;
        clear() ;
        while(1) {
                move(ROW , LEFT -1) ;
                addch('|') ;
                move(ROW , RIGHT + slen ) ;
                addch('|') ;
                move(ROW , curpos) ;
                addstr(msg) ;
                move(LINES -1 , COLS -1) ;
                refresh() ;
                usleep(0.3 * 1e6 ) ;
                move(ROW , curpos) ;
                addstr(blank) ;
                curpos += dir ;
                if (curpos == RIGHT)
                        dir = -1 ;
                if (curpos == LEFT)
                        dir = 1 ;
        }

 return 0 ;
}

without further ado, let’s get started
2009-07-29 21:55
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
得分:0 
#include <curses.h>
不就是libcurses的包??

昏。。。

生命不熄,战斗不止.
2009-07-29 22:29
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
得分:0 
以下是引用wxjeacen在2009-7-29 22:29的发言:

#include <curses.h>
不就是libcurses的包??

昏。。。

你哪里看到我说不是了??

[[it] 本帖最后由 iFreeBSD 于 2009-7-29 23:00 编辑 [/it]]

without further ado, let’s get started
2009-07-29 22:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-280775-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.482440 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved