《是男人就坚持100秒(DodgeFace)》是一款用面部躲避小球的游戏。通过摄像头捕捉面部,玩家需移动身体或转头躲避飞来的小球。未检测到脸会Game Over,脸像素过小时会变红提示,过小则结束。按r可重开,默认开GPU运行,也可改设为全身躲避,调整球半径即可。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

python DodgeFace.py
# 对两个分割魔性封装了一下,这里可以根据你需要的去选择相应的类class segUtils:
def __init__(self):
super(segUtils, self).__init__()
self.ace2p = hub.Module(name='ace2p') def getMask(self, frame):
res = self.ace2p.segmentation([frame], use_gpu=True) if isinstance(res, list):
resint = res[0]['data']
resint[resint != 13] = 0
resint[resint == 13] = 1
return resint else: return Noneclass segHuman:
def __init__(self):
super(segHuman, self).__init__()
self.module = hub.Module(name='humanseg_mobile')
self.prev_gray = None
self.prev_cfd = None
def getMask(self, frame, cap=None):
if cap is None:
res = self.module.segment(images=[frame], use_gpu=True) if isinstance(res, list): return np.around(res[0]['data'] / 255) else:
res, gray, cfd = self.module.video_stream_segment(images=frame, frame_id=cap.get(1), use_gpu=True, prev_gray=self.prev_gray, prev_cfd=self.prev_cfd)
self.prev_gray = gray
self.prev_cfd = cfd
res[res < 100] = 0
res[res >= 100] = 1
return res# 小球的类,因为完全弃用了pygame, 要自己这样写draw了class Ball:
x = None
y = None
speed_x = None
speed_y = None
radius = None
color = None
def __init__(self, x, y, speed_x, speed_y, radius, color):
self.x = x
self.y = y
self.speed_x = speed_x
self.speed_y = speed_y
self.radius = radius
self.color = color def draw(self, screen):
t,l,b,r = getPIXEL(self.x, self.y, self.radius) if isinstance(self.color, int):
screen[t:b,l:r,:] = self.color else:
screen[t:b,l:r,0] = self.color[0]
screen[t:b,l:r,1] = self.color[1]
screen[t:b,l:r,2] = self.color[2]
def move(self, screen):
self.x += self.speed_x
self.y += self.speed_y
if self.x > W - self.radius or self.x < self.radius:
self.speed_x = -self.speed_x if self.y > H - self.radius or self.y < self.radius:
self.speed_y = -self.speed_y
time.sleep(0.001) # 判断一下有没有和人像撞到一起
if inseg(self.x, self.y, self.radius): return True
else:
self.draw(screen) return False# 小球生成器, 生不生成球,一秒生成几个,都在这里进行控制哦,另外小球的每帧的运动绘制,也在这里def create_ball():
r = 3
color = 0
x, y = randomXY() if inseg(x,y,r+30):
x, y = randomXY()
speed_x = random.randint(-10, 10)
speed_y = random.randint(-10, 10)
b = Ball(x, y, speed_x, speed_y, r, color)
balls.append(b)
def ball_manager():
global showimg global currentIndex global currentTime global lastTime global gm global genTime if currentTime != lastTime: if currentIndex < len(gm): if currentTime < genTime[currentIndex]: for i in range(gm[currentIndex]):
create_ball() else:
currentIndex += 1
if currentIndex >= len(gm):
currentIndex = len(gm) - 1
lastTime = currentTime for b in balls: if b.move(showimg): return True
return False以上就是【AI创造营】是极客就坚持一百秒?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号