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

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

如何實現碰撞檢測?

如何實現碰撞檢測?

元芳怎么了 2021-08-24 18:20:45
from graphics import*import timeimport random def main():    numx=random.randint(10,700)    wn=GraphWin("AK",700,700)    wn.setBackground("white")    msg=Text(Point(25,30),"Score")    msg.setSize(12)    msg.setTextColor('blue')    msg.draw(wn)    inch=Entry(Point(60,30),2)    inch.setFill('white')    inch.draw(wn)     sqrg=Rectangle(Point(330,650),Point(430,665))    sqrg.setFill("red")    sqrg.draw(wn)    blx=Circle(Point(numx,80),20)    blx.setFill("blue")    blx.draw(wn)    xval=10    yval=0    wn.getMouse()    for i in range(150):        sqrg.move(xval,yval)        symbl=wn.checkKey()        if symbl=="Right":                xval=10                yval=0        if symbl=="Left":                xval=-10                yval=0        time.sleep(0.08)        blx.move(0,20)main()我很困惑我的教授很困惑,我需要為一個項目這樣做,當檢測到碰撞時,分數會上升。
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

你的半徑是二十。在循環內部,只測試 sqrg 和 blx 之間的歐幾里德距離是否在 20 以內。


查看完整回答
反對 回復 2021-08-24
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

以下是基于您的代碼的精簡示例。它測量兩個移動物體的中心之間的距離,以確定是否發生了碰撞。如果你設法讓球擊中方塊,球應該直接彈起:


from random import randint

from time import sleep

from graphics import *


def distance(p1, p2):

    return ((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2) ** 0.5


wn = GraphWin("AK", 700, 700)


sqrg = Rectangle(Point(325, 625), Point(375, 675))

sqrg.setFill("red")

sqrg.draw(wn)


numx = randint(10, 700)


blx = Circle(Point(numx, 80), 20)

blx.setFill("blue")

blx.draw(wn)


xval, yval = 10, 0


bheading = 1


wn.getMouse()


for i in range(150):

    sqrg.move(xval, yval)


    if distance(blx.getCenter(), sqrg.getCenter()) < 25:

        bheading *= -1


    symbl = wn.checkKey()


    if symbl == "Right":

        xval = 10

    elif symbl == "Left":

        xval = -10


    sleep(0.1)


    blx.move(0, bheading * 20)

Cleary 不是一個可行的游戲,而是碰撞檢測的演示。


查看完整回答
反對 回復 2021-08-24
  • 2 回答
  • 0 關注
  • 227 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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