http://wiki.allegro.cc/AllegroExamples以上是英文例子站点。
by Shawn Hargreaves,allegro的作者
目录: 1 Allegro 例子
1.1 exhello
1.2 exmem
1.3 expal
这个例子将展示如何巧妙使用调色板的高级技巧
它将在屏幕上绘制一系列同心圆,并通过渐变调色板来使它们栩栩如生
int main(void)
{
PALETTE palette;
RGB temp;
int c;
if (allegro_init() != 0)
return 1;
install_keyboard();
if (set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0) != 0) {
if (set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0) != 0) {
allegro_message("Error setting graphics mode\n%s\n", allegro_error);
return 1;
}
}
/* 用全黑的调色板初始化 */
set_palette(black_palette);
/*在屏幕上绘制同心圆 */
acquire_screen();
for (c=255; c>0; c--)
circlefill(screen, SCREEN_W/2, SCREEN_H/2, c, c);
release_screen();
install_mouse();
show_mouse(screen);
/*使用渐变色来填充调色板 */
/*这里最好手动计算出RGB的值,并找个调色板程序自己看一下这些颜色的排列 */
for (c=0; c<64; c++) {
palette[c].r = c;
palette[c].g = 0;
palette[c].b = 0;
}
for (c=64; c<128; c++) {
palette[c].r = 127-c;
palette[c].g = c-64;
palette[c].b = 0;
}
for (c=128; c<192; c++) {
palette[c].r = 0;
palette[c].g = 191-c;
palette[c].b = c-128;
}
for (c=192; c<256; c++) {
palette[c].r = 0;
palette[c].g = 0;
palette[c].b = 255-c;
}
/*[旋转]调色板来使画面生动 */
while (!keypressed()) {
temp = palette[255];
for (c=255; c>0; c--)
palette[c] = palette[c-1];
palette[0] = temp;
set_palette(palette);
}
return 0;
}
END_OF_MAIN()
--------------------------------------------------------------------------------------------------------------------------------------------------
使用allegro的公式:
1、allegro_init(); // 必须的
2、install_keyboard(); // 初始化
install_mouse();
3、set_gfx_mode(标志量,屏幕宽,屏幕高,0,0); // 设置显示模式
4、set_palette(black_palette); // 设置调色板
5、绘制(直接写屏、文字输出、新建位图,位图拷贝);
show_mouse(screen);
6、响应用户输入事件(主循环)
readkey();
keypress();
7、END_OF_MAIN // 必须的
--------------------------------------------------------------------------------------------------------------------------------------------------
小结三:
1、allegro_message("Error setting graphics mode\n%s\n", allegro_error); // allegro的messagebox;
2、circlefill(screen, SCREEN_W/2, SCREEN_H/2, c, c);
void circlefill(BITMAP *bmp, int x, int y, int radius, int color);
以指定的中心、半径、和颜色填充一个圆。
因此必须从大圆开始填充,否则小圆会被更大的圆覆盖。
3、install_mouse();
初始化鼠标的位置很特别,事实上可以在install_keyboard();的位置初始化,
但是: 如果你在鼠标可见时向 屏幕画任何东西, 鼠标移动中断可能发生在你绘画的过程中.
如果这发生在鼠标 缓冲刷新和 SVGA 页面切换时将造成混乱,是满屏留下 '鼠标拖动轨迹
(mouse droppings)'为了避免这些,你必须在向屏幕作画时确认关掉的鼠标显示.
4、show_mouse(screen);
告诉 Allegro 在屏幕上显示鼠标.这只在时钟模块加载了才工作.鼠标将被画在 指定的位图(bitmap)上, 这个位图通常是 'screen' (屏幕) (见后面有关位图的 信息). 调用 show_mouse(NULL) 可以隐藏鼠标.
调用scare_mouse();
与unscare_mouse();可以达到同样的效果。
但是scare_mouse();只是记录当前鼠标的状态并隐藏鼠标
unscare_mouse()只是取消scare_mouse()
所以如果在show_mouse(NULL)之后调用它们,仍然看不见鼠标的
5、keypressed();// 响应键盘事件的,这个例子没有太多的应用,只是告诉程序如果有键按下了,就退出。
分享到:
相关推荐
Allegro学习笔记之7_焊盘设计,cadence软件设计教程
Allegro的学习资料你,关于如何导出Gerber文件和钻孔数据文件
Allegro学习笔记之6——热风焊盘Allegro学习笔记之6——热风焊盘
Allegro学习笔记系列 有初学者可以一起学习
ALLEGRO学习笔记(注释).doc
Allegro学习笔记汇编.pdf
ALLEGRO学习笔记,整理了自己很多年的经验,初学者共同进步啊
Orcad_Capture CIS_Allegro学习笔记,方便制版layout学习
Allegro16.6学习笔记,当时我刚开始学习allegro时有用到过,适用于初学者学习使用
初学allegro pcb软件,自己总结的一些笔记,欢迎大家交流
Allegro层叠
Allegro_16.2学习笔记.pdf
Cadence Allegro 16.3 在以往的版本基础上添加了许多新的功能,这是我二周来的学习总结,当然很多部分是对其界面的总结。同时还有些高速PCB 经验记录。
allegro-16.6入门学习笔记详细记载了学习期间重要的步骤以及注意点。对初次接触allegro能起到很好的学习帮助作用。
Candence Allegro,高速电路板专用画图软件,
这些资料其中包括,Allegro教程,Allegro设计流程。Altium板转换为Allegr,Allegro学习笔记等13份入门资料。仅供参考。
【使用软件】Pad Designer 、PCB Editor 【步骤】 第一步:建立标贴焊盘 0603焊盘尺寸如下: 打开pad designer 做如下设置 参数页设置单位Units和精度 ...打开allegro软件,创建封装文件,如下,添加到对应的路径
自己的学习心得,给初学allegro的同鞋们一点参考,自己的做的笔记,比找资料要来的快一些。
candence allegro学习笔记 原理图及PCB设计步骤详细
史上最全的Allegro入门中文学习资料,包含学习笔记,速成教材,中文教程