【Python游戏】用Python基于centernet在win10平台开发,射击游戏 | 附带源码

相关文件

想学Python的小伙伴可以关注小编的公众号【Python日志】
有很多的资源可以白嫖的哈,不定时会更新一下Python的小知识的哈!!
需要源码的小伙伴可以在公众号回复射击游戏
Python源码、问题解答学习交流群:773162165

开发环境

Python版本:3.7.8
相关模块:
time
mss
numpy
_init_paths
cv2
opts
multiprocessing
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

在这里插入图片描述
在这里插入图片描述

代码实现

单线程瞄准射击代码

'''
单线程瞄准射击代码
'''

from __future__ import absolute_import  #绝对引用
from __future__ import division
from __future__ import print_function
import torch
import pyautogui
from input_controllers.native_win32_input_controller import NativeWin32InputController
from win32dll_input import Mouse

import mss
import time
import numpy as np
import cv2
import _init_paths

from input_controller import InputController, MouseButton, KeyboardKey, character_keyboard_key_mapping

import os
import cv2
from opts import opts
from detectors.detector_factory import detector_factory

names  = ['enemy_0_head', 'enemy_0_body', 'enemy_1_head', 'enemy_1_body', 'enemy_2_head',
      'enemy_2_body', 'hostage_0']

test={
   "force":True}
def draw_res(img,names, results,show_txt=False,enable_bot=False):
    heads_loc =[]
    body_loc = []

    for j in range(1, len(names) + 1):
        for bbox in results[j]:
            if bbox[4] > 0.3:
                bbox = np.array(bbox, dtype=np.int32)
                # cat = (int(cat) + 1) % 80

                cat = int(j-1)
                # print('cat', cat, self.names[cat])
                head_c = (0,0,255)
                body_c = (255,0,0)
                c = (0,255,0)
                if not enable_bot:
                    head_c =c
                    body_c =c
                #print('cat', cat, self.names[cat])
                conf = bbox[4]
                txt = '{}{:.1f}'.format(names[cat], conf)
                font = cv2.FONT_HERSHEY_SIMPLEX
                cat_size = cv2.getTextSize(txt, font, 0.5, 2)[0]
                if "head" in txt:
                    img = cv2.rectangle(
                        img, (bbox[0], bbox[1]), (bbox[2], bbox[3]), head_c, 2)
                    heads_loc.append((int((bbox[0]+bbox[2])/2),int((bbox[1]+bbox[3])/2)))
                elif 'body' in txt:
                    img = cv2.rectangle(
                        img, (bbox[0], bbox[1]), (bbox[2], bbox[3]), body_c, 2)
                    body_loc.append((int((bbox[0]+bbox[2])/2),int((bbox[1
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值