30天自制操作系统吧 关注:1,376贴子:4,655
  • 3回复贴,共1

【程序】Invader Linux版

只看楼主收藏回复

基于gtk3和cairo(开罗图形库),在最新的Fedora39系统下开发的。窗口可随意改变大小。



IP属地:四川来自Android客户端1楼2024-02-15 22:42回复
    下载链接:http://adv.purasbar.com/mcu/invader_20240215_2.zip


    IP属地:四川来自Android客户端2楼2024-02-15 22:45
    回复
      cairo库在使用cairo_scale函数放大拉伸图像后,默认情况下放大后的图像很模糊,可在cairo_set_source_surface函数之后使用cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST)语句直接放大每个像素,不进行模糊处理。
      例如:
      width = gtk_widget_get_allocated_width(widget);
      height = gtk_widget_get_allocated_height(widget);
      cairo_scale(cr, (double)width / GAME_WIDTH, (double)height / GAME_HEIGHT);
      cairo_set_source_surface(cr, surface, 0, 0);
      cairo_pattern_set_filter(cairo_get_source(cr), CAIRO_FILTER_NEAREST); // 防止放大后的图像模糊
      cairo_paint(cr);
      cairo_surface_destroy(surface);


      IP属地:四川来自Android客户端3楼2024-02-16 08:18
      回复
        这样的学习方法很好!


        IP属地:上海4楼2024-02-16 13:15
        回复