use SDL; use SDLx::App; use SDL::Event; my $app=SDLx::App->new(w=>400,h=>400,d=>32,t=>"my paint"); my $color =[255,255,255,255]; my $drawing=0; $app->add_event_handler(\&quit_handle); $app->add_event_handler(\&key_event); $app->add_event_handler(\&mouse_event); $app->run(); sub quit_handle { my $event=shift; my $controller=shift; $controller->stop() if $event->type==SDL_QUIT; } sub key_event { my $keyevent=shift; if ($keyevent->type==SDL_KEYDOWN) { my $key_name=SDL::Events::get_key_name($keyevent->key_sym); if ($key_name=~/^c$/){ $app->draw_rect([0,0,400,400],0); } elsif ($key_name=~/^q$/) { $app->stop(); } else { my $col1=int(rand(255)); my $col2=int(rand(255)); my $col3=int(rand(255)); $color =[$col1,$col2,$col3,255]; } } } sub mouse_event { my $event=shift; if ($event->type==SDL_MOUSEBUTTONDOWN||$drawing) { $drawing=1; my $x=$event->button_x; my $y=$event->button_y; $app->draw_rect([$x,$y,2,2],$color); $app->update(); } $drawing=0 if ($event->type==SDL_MOUSEBUTTONUP); }
相关推荐
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...
- 处理键盘、鼠标和控制器输入。 - 播放音频和音乐。 - 加载和渲染图像。 - 实现复杂的定时器和事件循环。 为了开始使用go-sdl2,你需要先安装Go环境,然后根据`README.md`中的指示获取和编译项目。通常,这涉及到...
devcpp-cmake-template-devcpp-sdl-templatedevcpp-cmake-template-devcpp-sdl-templatedevcpp-cmake-template-devcpp-sdl-templatedevcpp-cmake-template-devcpp-sdl-templatedevcpp-cmake-template-devcpp-sdl-...
perl-interpreterz库包,找了很久,只支持Centos 7以上系统
它提供了一个直接的接口来管理窗口、渲染图像、处理键盘和鼠标输入,以及播放音频,这些都是游戏开发的基础需求。 在Perl-SDL-Breakout项目中,开发者使用了Perl的SDL绑定来创建游戏的基本元素:游戏窗口、球、砖块...
《坦克大战3.0》是一款基于SDL库开发的游戏,其源代码被封装在名为"tank-sdl-0.3.0.tar.gz"的压缩包中。这个文件是开发者们分享和学习游戏编程的一个宝贵资源,它揭示了如何利用SDL(Simple DirectMedia Layer)库来...
SDL2(Simple DirectMedia Layer 2)是一个跨平台的开发库,用于处理图形、音频、输入设备等多媒体元素。它在游戏开发领域特别受欢迎,因为它的API简洁高效,并且支持多种操作系统,包括Windows、Linux、Mac OS X...
总结一下,Go-sdl2是一个将C语言的SDL2库与Go语言紧密结合的项目,旨在提供一套全面、易于使用的接口,让Go程序员能够在游戏开发和多媒体应用中充分利用SDL2的功能。通过这个库,开发者可以创建丰富的图形界面、处理...
2. **06linux-sdl-event**:事件处理是任何交互式应用的核心。SDL提供了一个事件模型,允许程序响应用户的键盘、鼠标输入以及窗口事件,如窗口大小改变或关闭请求。 3. **07linux-sdl-thread**:多线程编程在现代...
滑动窗口协议--SDL设计;北邮滑动窗口协议实验设计。滑动窗口协议--SDL设计;北邮滑动窗口协议实验设计。
它提供了窗口管理、事件处理、音频输出、图像加载和渲染、以及键盘和鼠标输入等功能。SDL2的一个主要优点是它的跨平台性,可以在Windows、Linux、Mac OS X、Android和iOS等操作系统上运行。 **Android NDK和JNI** ...
因此,“wix-protos-sdl-testing-test”可能包含与Zookeeper交互的组件,支持在分布式环境中进行测试或管理。 “云原生”是指一种构建和运行应用程序的方法,强调利用云计算的优势,如弹性伸缩、服务发现、微服务...
总之,TinyPTC-SDL-0.3.2-renewed的更新为开发者带来了在SDL环境中显示中文的能力,这是对先前版本的一个重要补充,特别是在多语言应用开发领域。开发者现在可以充分利用cairo的强大功能,创建更加本地化和用户体验...
S-SDL(Software Secure Development Lifecycle,软件安全开发生命周期)是一种企业级的软件安全实践框架,旨在帮助组织通过在整个软件开发生命周期中集成安全措施,实现更加安全的系统交付。S-SDL不仅关注技术层面...
《【FFmpeg编程实战】(3)实现FFmpeg4.3 + SDL2视频播放器(只播放视频)(C++)》 https://ciellee.blog.csdn.net/article/details/108990754
SDL主要功能包括窗口管理、事件处理、键盘和鼠标输入、图像渲染、音频播放和文件加载等。它的设计目标是简化这些任务,使得开发者可以专注于游戏逻辑和应用程序的核心功能,而不是底层的系统细节。 音视频渲染是SDL...
总的来说,perl-cross-1.3项目为Perl开发者提供了一种跨平台的解决方案,特别是在处理3D应用时,可能极大地简化了开发和部署过程。通过深入研究其源代码和文档,开发者可以学习到如何编写跨平台的Perl代码,以及如何...
ONScripter-Jh-sdl2.ipa