找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 298|回复: 7

中B:photoship项目

[复制链接]

27

主题

78

回帖

442

积分

超级版主

积分
442
发表于 4-5-2025 16:59:18 | 显示全部楼层 |阅读模式
本帖最后由 liuyi 于 4-10-2025 13:41 编辑



本来呢,最早我们这个项目是:做自己的Photoshop
后来呢,有同学不小心打成了Photoship,还好还好是p不是t
最后呢,这个项目就名称就正式叫:Photoship,这个名字预示着未来还会有很多变化

先下载这个zip包,里面主要是有一些图片文件,我们先来做图片阅览器。

V1.0是个很简单的版本:按SPACE键看下一幅图。但是,也算是有基本功能了!




这是V1.1版本,拥有以下功能:

SPACE键或右方向键,下一幅图
左方向键,上一幅图
上下方向键,出图动画速度调整
字母键从A开始,设置不同的出图特效,并且以这个出图特效展示下一幅图

请注意class CLS_photoship就相当于Gunship中的Framework

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 4-5-2025 17:14:44 | 显示全部楼层


滤镜,其实就是:根据原图每个像素pixel的rgb,计算生成新图的rgb
V1.1a滤镜版本是一个分支版本,就是“给大家玩的”,后面的正式版本没有滤镜功能。






这是V1.1a完整代码,请一定是new file的。
数字键是各种filter


这是浮雕效果
其实整个浮雕效果的代码只有35行。
所有filter都是在依据网上找到的简单论文里的数学内容写的代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 4-10-2025 13:30:47 | 显示全部楼层



下一步,我们要利用这No.3~6号4个出图特效,设计一个‘导览系统“。
要做的project越来越大型了,除了Framework框架,还要学一些新方法。
首先,做自己的Module,这样就不必要所有代码在一个file里,管理更清晰。

实际上呢,就是把原有的V1.2代码“切”成两半,一个作为module文件,一个作为V2.0代码文件。


Module文件,pic.py,实际上就是V1.2的前半部分(就是pic的class定义),我删除了No.1和No.2特效代码,保留了3456


这是V2.0,实际上就是原有的V1.2的pic类定义之后的所有代码,并在开始增加一句 from pic import *
注意:from pic import * import pic的区别是,后者必须使用其中资源必须要加前缀pic.,而前者直接用(那就要注意重名问题)。
最后再强调:注意文件名和文件头的注释信息。
然后现在,运行Photoship V2.0,效果和运行V1.2完全一样,而运行pic.py没有意义。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 4-10-2025 14:00:06 | 显示全部楼层


现在我们学习Mouse Event,并在V2.1中实现基本框架功能。





首先new File,制作V2.1,请在文件开始出增加版本功能说明的注释,然后框架类定义的init中增加mousePos属性


在key_up和key_down后,增加mouse_up, mouse_down,  mouse_motion
注意在mouse_motion中记录了鼠标当前坐标
在mouse_down中,打印了当前鼠标的坐标。


在while True中也要增加到mouse的接口调用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 4-10-2025 14:05:29 | 显示全部楼层
本帖最后由 liuyi 于 4-18-2025 13:07 编辑

V2.1a:做点好玩的

我们来尝试改变鼠标的造型


在框架的play函数里,增加4句,看看运行程序后是什么效果?(输入的时候就可以想象起来)




好多弹坑图片可选,zip包里我拆出来了两个,可以设置透明色color_key为(255,255,255)

然后请尝试:屏幕上留下shoot的弹坑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 昨天 13:25 | 显示全部楼层
V2.1b dankeng
这个版本的目标是做一个游戏里常见的事:shoot留下弹坑。
游戏的本质是simulation,所以程序必须记录一切。



建立class dankeng,记得把相关图片和声音copy过来


Framework里增加记录弹坑的list变量,play里在合适的地方“画弹坑”


mouse event,如果左键shoot,那么随机产生一种弹坑(有两种)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 昨天 17:05 | 显示全部楼层
V2.2准备工作


photoship项目是从“看图工具”衍生而来,现在要做“导游系统”了,所以删除多余代码






下面是V2.2代码




上面新增大段是场景数据初始化
后面while True里的部分,保持V2.1无改动



V2.2版本可以实现:通过Button,前进后退,向左向右,在4个Guide中进行游览。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

27

主题

78

回帖

442

积分

超级版主

积分
442
 楼主| 发表于 昨天 18:16 | 显示全部楼层


V2.3要实现的功能:鼠标划过某个rect区域,会在指定(x,y)坐标显示一段文字。


可以看到,新增内容都在Guide类定义里
然后在初始化部分,制造一个txt即可,要求见下图:

鼠标经过小哥脸庞的时候问“我帅吗”
当然,你要自己获得小哥的脸的rect参数(x,y,w,h)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 4-19-2025 04:19 , Processed in 0.093121 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表