`
deepfuture
  • 浏览: 4401975 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80084
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70101
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103411
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285931
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15019
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67609
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32177
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46001
社区版块
存档分类
最新评论

SDL perl-SDLX::surface应用(1)

 
阅读更多
use SDL;
use SDLx::App;
my $app=SDLx::App->new(w=>400,h=>400,d=>32,t=>"我的第二个程序");
#画大地
$app->draw_rect([0,0,400,400],[0,0,100,255]);
#画夜空
my $sky=SDLx::Surface->new(width=>400,height=>200);
$sky->draw_rect([0,0,400,200],[0,0,0,255]);
#画月亮
$sky->draw_circle_filled([150,50],25,[255,255,0,255]);
#画星星
for (my $i = 1; $i < 50; $i++)
{
   my $x=int(rand(400));
   my $y=int(rand(200));
   if (not ($x>125 and $x<175  and $y >25 and $y<75))
   {
      $sky->draw_circle_filled([$x,$y],2,[0,0,200,255]);      
   }  
}
$sky->blit($app);
$app->update();
sleep(5);

 

 


 

 

 

use SDL;
use SDLx::App;
my $app=SDLx::App->new(w=>400,h=>400,d=>32,t=>"我的第二个程序");
#画大地
$app->draw_rect([0,0,400,400],[0,100,0,255]);
#随机生成大地的麻点
for (my $i = 1; $i < 500; $i++){
    $app->[int(rand(400))][200+int(rand(200))]=[10,10,10,255];
}
#画夜空
my $sky=SDLx::Surface->new(width=>400,height=>200);
$sky->draw_rect([0,0,400,200],[0,0,0,255]);
#画树
my $tree=SDLx::Surface->new(width=>400,height=>150);
for (my $i = 1; $i < 30; $i++){
    $x=int(20+rand(375));
    $y=int(15+rand(100));
    $tree->draw_circle_filled([$x,$y],15,[0,150,0,255]);
	$tree->draw_rect([$x,$y+15,2,15],[0,0,15,255]);
}
#画月亮
$sky->draw_circle_filled([150,50],25,[255,255,0,255]);
#画星星
for (my $i = 1; $i < 50; $i++)
{
   my $x=int(rand(400));
   my $y=int(rand(200));
   if (not ($x>125 and $x<175  and $y >25 and $y<75))
   {
      $sky->draw_circle_filled([$x,$y],2,[0,0,200,255]);      
   }  
}
$sky->blit($app);
$tree->blit($app,[0,0,400,150],[0,200,400,150]);
$app->update();
sleep(5);

 

 

 

读取PNG图片

use SDL;
use SDLx::App;

my $app=SDLx::App->new(w=>400,h=>400,d=>32,t=>"我的第二个程序");
#画大地
$app->draw_rect([0,0,400,400],[10,80,10,255]);
#随机生成大地的麻点
for (my $i = 1; $i < 500; $i++){
    $app->[int(rand(400))][200+int(rand(200))]=[10,10,10,255];
}
#画夜空
my $sky=SDLx::Surface->new(width=>400,height=>200);
$sky->draw_rect([0,0,400,200],[0,0,0,255]);

#画月亮
$sky->draw_circle_filled([150,50],25,[255,255,0,255]);
#画星星
for (my $i = 1; $i < 50; $i++)
{
   my $x=int(rand(400));
   my $y=int(rand(200));
   if (not ($x>125 and $x<175  and $y >25 and $y<75))
   {
      $sky->draw_circle_filled([$x,$y],2,[0,0,200,255]);      
   }  
}
$sky->blit($app);
#画树
for (my $i = 1; $i < 20; $i++){
    $x=int(rand(350));
    $y=150+int(rand(100));
    my $tree=SDL::Image::load('tree.png');
	$tree= SDLx::Surface->new(surface =>$tree);
    $tree->blit($app,[0,0,100,133],[$x,$y,100,133]);	
}
$app->update();
sleep(5);

 

 

 

  • 大小: 29.2 KB
  • 大小: 28.4 KB
  • 大小: 128.8 KB
分享到:
评论

相关推荐

    SDL2-2.0.12-win-x64_x86.zip

    SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0); if (renderer == NULL) { printf("创建渲染器失败: %s\n", SDL_GetError()); SDL_DestroyWindow(window); SDL_Quit(); return -1; } SDL_...

    SDL2-devel-2.0.12-VC

    SDL,全称为 Simple DirectMedia Layer,是一个跨平台的多媒体开发库,广泛应用于游戏开发、图形用户界面构建和其他与音频、视频以及输入设备交互的应用。 描述中的 "SDL2-devel-2.0.12-VC" 同样强调了这是针对 ...

    drawtext-sdl2-freetype2-harfbuzz:使用FreeType2和HarfBuzz在SDL2上绘制文本的示例

    sdl-ft-1:使用FreeType 2和SDL2的基本文本呈现 sdl-ft-stroke:每个字符带有边框的文本 sdl-ft-outlinerender:使用Outline Render回调来渲染文本,而不是默认的FreeType渲染器。 sdl-ft-harfbuzz:添加harfbuzz-...

    SDL2支持文件,SDL2-devel-2.30.1-mingw.zip

    VScode中安装LVGL模拟器所使用的依赖下载文件,SDL2-devel-2.30.1-mingw.zip 安装LVGL模拟器的教程如下 https://blog.csdn.net/weixin_49337111/article/details/136536375#comments_31930883

    SDL2-devel-2.0.4-VC.zip

    SDL,全称Simple DirectMedia Layer,是一个跨平台的多媒体开发库,常用于游戏开发和其他实时多媒体应用。它提供了一个抽象层,方便开发者在不同的操作系统上处理图形、音频和输入设备。 描述“SDL for Windows Vs,...

    SDL2-devel-2.0.10-mingw.tar.gz

    这个包通常包含源代码、头文件、库文件以及必要的构建工具,方便开发者在Windows上构建和调试使用SDL2的C或C++应用。 **SDL2(Simple DirectMedia Layer 2)** SDL2是一个跨平台的开发库,主要用在游戏开发、媒体...

    SDL2-2.0.12.rar

    1. **图形渲染**:SDL2提供了一套高效且灵活的2D图形渲染接口,允许开发者直接绘制像素,创建复杂的图像,并支持纹理映射。它还支持硬件加速,提高了图形性能。 2. **事件处理**:SDL2能够处理各种用户输入事件,...

    SDL2-2.0.8.tar.gz

    1. **SDL2 库**:SDL2 是一个 C 语言编写的应用程序开发库,主要用于处理低级的多媒体任务,如窗口管理、图像渲染、音频播放和输入设备的管理。它为开发者提供了一个抽象层,使其能够在多种操作系统上轻松移植应用...

    SDL2-devel-2.0.10-VC.zip(SDL官方库)

    return -1; } SDL_Window* window = SDL_CreateWindow("Hello, SDL2!", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN); if (!window) { printf("创建窗口失败: %s\n", SDL_...

    sdl-mir2-sdl-mir2-sdl-mir2

    sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2sdl-mir2...

    sdl12-compat:一个SDL-1.2兼容性层,在后台使用SDL 2.0

    标题中的“sdl12-compat”是一个项目或库,其目标是提供对SDL(Simple DirectMedia Layer)1.2版本的兼容性,同时在实际运行时利用SDL 2.0的优势。这是一个对于那些依赖旧版SDL API但又希望利用新版本功能的开发者...

    SDL2-devel-2.0.9-VC.zip

    1. **SDL2简介**:SDL2是一个开源的、跨平台的开发库,主要用于游戏开发、多媒体应用以及图形用户界面。它提供了一组API,使得开发者可以轻松地处理图形渲染、音频播放、事件处理、文件I/O和多线程等任务。 2. **...

    sdl2-windows64-release-2.28.5

    SDL2是SDL的第二个主要版本,相比于早期的SDL1.x,它带来了许多改进和新特性,如更好的硬件支持、新的渲染系统、改进的事件处理以及对现代编程语言的更好支持。在Windows 64位环境下,这个版本的SDL2应该能充分利用...

    SDL2-devel-2.0.4-VC

    1. **SDL2介绍**:SDL2是一个开源的跨平台开发库,它提供了一组API,用于处理图形渲染、音频播放、视频播放、键盘和鼠标输入、游戏控制器输入等。SDL2支持Windows、Linux、Mac OS X、iOS、Android等多个操作系统。 ...

    .m2解决方法

    Project build error: Non-resolvable parent POM for com.taotao:taotao-common:0.0.1-SNAPSHOT: Could not find artifact ...

    SDL2-2.0.1移植

    SDL2.2.0.1的移植,包含SDL的每个参数的意思,包含交叉编译器的安装,包含移植过程中出错的处理方法。 --prefix=/usr/arm 安装SDL路径 --enable-shared=yes 构建共享库[开启] --enable-nasm 装配blitters x86上的...

    SDL2-FontCache:在SDL2中将字体缓存为纹理

    1. **性能提升**:通过一次性加载和渲染字体,避免了每帧都进行昂贵的字体计算,提高了游戏或应用的帧率。 2. **内存优化**:缓存的纹理可以重复使用,减少了内存分配和释放的开销。 3. **易于使用**:项目提供的API...

    sdl2-image:SDL_image 版本 2 及更高版本的 Haskell 绑定

    (SDL) 是一个用 C 编写的跨平台开发库,它为多媒体应用程序提供低级音频、视频和输入功能。 库通过提供加载和处理各种图像文件格式的功能来扩展 SDL。 Haskell 已经有 SDL 和 SDL_image 的绑定,可以与库的版本 1 ...

    SDL2-2.0.12.tar.gz

    1. **SDL2库**:提供了窗口管理、事件处理、图像渲染、音频播放、文件I/O、定时器等功能,广泛应用于游戏开发、多媒体应用等领域。 2. **跨平台性**:SDL2可以在多个操作系统上运行,适应性强。 3. **多媒体支持**:...

    sdl2-sprite:使用sdl2(Haskell)轻松创建和设置精灵动画

    接下来,你可以将`Surface`转换为`sdl2-sprite`的`Sprite`类型,这可以通过`makeSprite`函数完成。这个`Sprite`对象包含了精灵的所有必要信息,包括其图像数据和初始位置。 在`sdl2-sprite`中,设置精灵的位置非常...

Global site tag (gtag.js) - Google Analytics