第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

C#如何識別兩個對象之間的碰撞

C#如何識別兩個對象之間的碰撞

C#
犯罪嫌疑人X 2021-06-04 09:10:09
表格1.csnamespace SpaceInvadersV3{public partial class Form1 : Form{    public bool isPressed;    Shooter player;    List<Missile> bullet;    List<Enemy> pirate;    Boundary bottom;    Boundary top;    Boundary left;    Boundary right;    public Form1()    {        InitializeComponent();        player = new Shooter(450,460);        bullet = new List<Missile>();        pirate = new List<Enemy>();        for (int i = 0; i < 10; i++)        {            Enemy temp = new Enemy();            pirate.Add(temp);                 }    }    private void timer1_Tick(object sender, EventArgs e)    {        player.Move();        foreach (Missile b in bullet)        {            b.Move();        }        foreach (Enemy p in pirate)        {            p.Move();        }        pictureBox1.Invalidate();        if (IsColliding(player, pirate) == true)         {            gameOver();        }    }錯誤是"pirate"說它不能從'System.Collections.Generic.List<SpaceInvadersV3.Enemy>'to轉(zhuǎn)換'SpaceInvadersV3.Enemy'我嘗試將'IsColliding'下面的函數(shù)從(Enemy b)to更改,(List<Enemy> b)但后來它無法識別b.Bottom并說它List<Enemy>不包含底部的定義。
查看完整描述

1 回答

?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

if (IsColliding(player, pirate) == true) 

首先,永遠不要寫那個。說“如果這些碰撞是真的”看起來很業(yè)余。說“如果這些東西發(fā)生碰撞”:


if (IsColliding(player, pirate))

同樣,喜歡if (!whatever)到if (whatever == false)。


其次,集合請使用復數(shù)名詞。那應該是pirates,不是pirate。您想向讀者強調(diào)它們的集合。


“海盜”中的錯誤表示它無法從“列表”轉(zhuǎn)換為“敵人”


你IsColliding需要一個射手和一個敵人,但你給它一個射手和一個敵人列表。 IsColliding不知道如何處理。


您已經(jīng)知道如何修復它。你想移動每一個敵人,所以你寫道:


foreach (Enemy p in pirate)

{

    p.Move();

}

現(xiàn)在你想檢查每個敵人的碰撞,所以做同樣的事情:


foreach (Enemy p in pirate)

{

    if (IsColliding(player, p)) { ... }

}

您最終將學習的一項高級技術是對序列使用查詢推導式:


var collisions = from p in pirate 

                 where IsColliding(player, p) 

                 select p;

foreach (Enemy p in collisions)

{

  ... handle the collision...

}

但是在嘗試跑步之前先學會走路。


查看完整回答
反對 回復 2021-06-05
  • 1 回答
  • 0 關注
  • 235 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號