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
分享到:
相关推荐
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0); if (renderer == NULL) { printf("创建渲染器失败: %s\n", SDL_GetError()); SDL_DestroyWindow(window); SDL_Quit(); return -1; } SDL_...
SDL,全称为 Simple DirectMedia Layer,是一个跨平台的多媒体开发库,广泛应用于游戏开发、图形用户界面构建和其他与音频、视频以及输入设备交互的应用。 描述中的 "SDL2-devel-2.0.12-VC" 同样强调了这是针对 ...
sdl-ft-1:使用FreeType 2和SDL2的基本文本呈现 sdl-ft-stroke:每个字符带有边框的文本 sdl-ft-outlinerender:使用Outline Render回调来渲染文本,而不是默认的FreeType渲染器。 sdl-ft-harfbuzz:添加harfbuzz-...
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_...
VScode中安装LVGL模拟器所使用的依赖下载文件,SDL2-devel-2.30.1-mingw.zip 安装LVGL模拟器的教程如下 https://blog.csdn.net/weixin_49337111/article/details/136536375#comments_31930883
SDL,全称Simple DirectMedia Layer,是一个跨平台的多媒体开发库,常用于游戏开发和其他实时多媒体应用。它提供了一个抽象层,方便开发者在不同的操作系统上处理图形、音频和输入设备。 描述“SDL for Windows Vs,...
这个包通常包含源代码、头文件、库文件以及必要的构建工具,方便开发者在Windows上构建和调试使用SDL2的C或C++应用。 **SDL2(Simple DirectMedia Layer 2)** SDL2是一个跨平台的开发库,主要用在游戏开发、媒体...
**SDL2-2.0.1.zip_SDL2-2.0.1.tar._SDL2.0.1** 是一个包含SDL2库2.0.1版本源代码的压缩文件。这个库是游戏开发和多媒体应用的核心组件,为开发者提供了一个跨平台的接口,使其能在不同的操作系统上编写高性能的图形...
1. **SDL2简介**:SDL2是一个开源的、跨平台的开发库,主要用于游戏开发、多媒体应用以及图形用户界面。它提供了一组API,使得开发者可以轻松地处理图形渲染、音频播放、事件处理、文件I/O和多线程等任务。 2. **...
1. **图形渲染**:SDL2提供了一套高效且灵活的2D图形渲染接口,允许开发者直接绘制像素,创建复杂的图像,并支持纹理映射。它还支持硬件加速,提高了图形性能。 2. **事件处理**:SDL2能够处理各种用户输入事件,...
SDL2是SDL的第二个主要版本,相比于早期的SDL1.x,它带来了许多改进和新特性,如更好的硬件支持、新的渲染系统、改进的事件处理以及对现代编程语言的更好支持。在Windows 64位环境下,这个版本的SDL2应该能充分利用...
1. **SDL2 库**:SDL2 是一个 C 语言编写的应用程序开发库,主要用于处理低级的多媒体任务,如窗口管理、图像渲染、音频播放和输入设备的管理。它为开发者提供了一个抽象层,使其能够在多种操作系统上轻松移植应用...
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...
1. **Include** 目录:存放所有头文件,如`SDL.h`和其他扩展库的头文件。 2. **Lib** 目录:包含编译所需的.lib文件(静态库)和.dll文件(动态链接库)。 3. **Docs** 目录(可能有):可能包含API文档或其他开发...
Project build error: Non-resolvable parent POM for com.taotao:taotao-common:0.0.1-SNAPSHOT: Could not find artifact ...
标题中的“sdl12-compat”是一个项目或库,其目标是提供对SDL(Simple DirectMedia Layer)1.2版本的兼容性,同时在实际运行时利用SDL 2.0的优势。这是一个对于那些依赖旧版SDL API但又希望利用新版本功能的开发者...
标题中的"SDL-devel-1.2.13-VC6.zip"表明这是SDL库的开发版本,版本号为1.2.13,并且是专为使用VC6.0编译器的开发者准备的。"vc_sdl_sdldevel-1.2"标签进一步强调了这是针对Visual C++和SDL 1.2开发的资源。 描述中...
SDL2.2.0.1的移植,包含SDL的每个参数的意思,包含交叉编译器的安装,包含移植过程中出错的处理方法。 --prefix=/usr/arm 安装SDL路径 --enable-shared=yes 构建共享库[开启] --enable-nasm 装配blitters x86上的...
SDL是一个跨平台的多媒体库,主要用于创建游戏、图形用户界面和其他与媒体交互的应用程序。它提供了一个底层接口来处理硬件,包括图像渲染、音频播放、输入设备管理和时间管理等。 **SDL库基础概念** 1. **跨平台...
SDL2.30 - VC 包,VsCode 可配置