亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅使用朝向敵人和藏身點的向量來隱藏搜索行為

僅使用朝向敵人和藏身點的向量來隱藏搜索行為

翻過高山走不出你 2021-11-30 18:32:21
對于 pygame 類,我被要求使用有關游戲世界的有限信息來實現各種搜索行為。大多數行為都很容易做到,但我在嘗試使用我有權訪問的信息實現隱藏行為時受阻。我得到了兩個向量和一個代理在世界上的位置。第一個向量是代理和它必須躲避的敵人之間的距離。第二個向量是與代理的距離以及它可以隱藏在后面的最近列。鑒于此,我想將代理移向列并確保它對敵人保持隱藏。在圖形術語中,我試圖b在此圖像中找到向量,我可以訪問該向量u,v并且我正在嘗試計算該向量w加上一個標量a,以獲得與該列的預期距離 + 其半徑。我目前正在運行這段代碼,但它顯然是錯誤的,因為我計算的向量超出了游戲世界的范圍。player_to_col_vector = (    col_distance[0] - enemy_distance[0],    col_distance[1] - enemy_distance[1],)normalized = 1 / sqrt(player_to_col_vector[0] ** 2 + player_to_col_vector[1] ** 2)dx = normalized * acceptable_distancedy = normalized * acceptable_distance我認為我的問題是我現在有 vector wa,但我不知道如何b從我擁有的信息中找到vector 。
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

我假設這acceptable_distance對應于圖像中向量a的大小。所以acceptable_distanceCD之間的距離

歸一化向量的計算是錯誤的。normalized是向量從BC的倒數長度:

normalized = 1 / sqrt(player_to_col_vector[0] ** 2 + player_to_col_vector[1] ** 2)

下面lenBCBC之間的距離。dirBC是一個單位向量(這意味著它的長度是 1)并且是從BC的方向:

lenBC = sqrt(player_to_col_vector[0] ** 2 + player_to_col_vector[1] ** 2)
dirBC = (player_to_col_vector[0] / lenBC, player_to_col_vector[1] / lenBC)

(dx, dy)是從CD的向量。

dx, dy = (dirBC[0] * acceptable_distance, dirBC[1] * acceptable_distance)

向量b,等于點D,是向量v和向量a的總和:

bx, by = (col_distance[0] + dx, col_distance[1] + dy)

從點的向量BD是的總和wa

BDx, BDy = (player_to_col_vector[0] + dx, player_to_col_vector[1] + dy)

已刪除,因為標簽“pygame”已被刪除。


查看完整回答
反對 回復 2021-11-30
  • 1 回答
  • 0 關注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號