找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限看帖不用回覆伊莉需要你的贊助和支持你準備好成為出色的版主了嗎?
波多野結流出fc2強姦overlordrpg
永井就是個混芸能人[rf/xn/k賈希大人墨武俠鋒無碼

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]怪人的沙拉碗04-

【高清繁】✡ 霹靂英

✡ 斗破蒼穹 年番/鬥

[簡]單人房、日照一般

[繁]魔王學院的不適任

(4月新番)[繁]為美好
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 2146|回復: 14
打印上一主題下一主題

[求助]關於打磚塊遊戲 反彈有點問題[複製鏈接]

A2515925 該用戶已被刪除
跳轉到指定樓層
樓主
發表於 2012-4-19 09:38 PM|只看該作者|倒序瀏覽
本帖最後由 A2515925 於 2012-4-19 11:01 PM 編輯

目前當球打到磚塊反彈有點問題=>已經解決還有目前重玩的話,只有方塊能刷新,不知道有什麼辦法讓板子與球隨機回復位子(原位也可以)
還有一個問題,就是球打到板子剛開始都同樣方向(往左上方反彈),有辦法像真正的打磚塊一樣(打到板子左邊往左反彈,右邊往右,中間往上)
希望各位能幫幫忙程式碼文字檔案:
...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
分享分享0收藏收藏0支持支持0

使用道具檢舉

  專 家(12000/24000)

偶素程式設計下的產物「浻」

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
1412
積分
17880 點
潛水值
38347 米
頭香
發表於 2012-4-19 10:40 PM|只看該作者
你的主執行檔 沒法執行,而你的程式碼又是取片段,實在無從幫起

使用道具檢舉

A2515925 該用戶已被刪除
3
發表於 2012-4-19 11:03 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
darkjack 發表於 2012-4-19 10:40 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

你的主執行檔 沒法執行,而你的程式碼又是取片段,實在無從幫起

大大抱歉,主程式已從用,程式碼也從用,目前最希望解決
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

  專 家(12000/24000)

偶素程式設計下的產物「浻」

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
1412
積分
17880 點
潛水值
38347 米
4
發表於 2012-4-20 07:07 AM|只看該作者
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。
本帖最後由 darkjack 於 2012-4-20 07:13 AM 編輯

你的主程式還是一樣 不能執行,會有錯誤,我猜想你應該是用 vb 2010 的 Framework 4 作業?

而你的程式碼我整個複製之後
因為你是用自定名稱的 控件 我自己修改之後會變成這種畫面 = =


而我滑鼠移動之後 整個介面都會移動
如果按下 button1 (應該是你設定的開始)
則那個框框 會在下方一直重複從左畫到右
...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
本人 都是寫 vb.net 如果看到本人的原創 請自備 .Net FrameWork 3.5

使用道具檢舉

A2515925 該用戶已被刪除
5
發表於 2012-4-20 12:46 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
本帖最後由 A2515925 於 2012-4-20 12:48 PM 編輯


這是我的執行圖
我本身是用MS Visual Studio 2010 express 不能執行主程式,是否需要整個專案檔案呢?
我設定的棒子(L)跟球(B)都是使用Label
移動滑鼠我自己是只會移動棒子,不知道為何會移動整個介面
開始(Button1)只是設定啟動Timer1而已
重新(Button2)目前只能夠清除磚塊與重畫磚塊
...
瀏覽完整內容,請先 註冊登入會員





附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。

使用道具檢舉

  專 家(12000/24000)

偶素程式設計下的產物「浻」

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

帖子
1412
積分
17880 點
潛水值
38347 米
6
發表於 2012-4-20 10:40 PM|只看該作者
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。
本帖最後由 darkjack 於 2012-4-20 10:41 PM 編輯

我剛剛想嘗試 用 FrameWork 4.5Beta 安裝結果不能安裝
用 FrameWork 4 我要安裝,顯示我電腦已經有 FrameWork4 了

我用你丟上來的原始碼 直接copy 過去 VS 2008

是有出現了棒子 但是卻少了 磚塊


  1.   Dim b = New Label
  2.   'Dim l = New Label   '<===全域 就會出現棒子 ,取消 卻只出現磚塊
  3.   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  4.     Dim L = New Label '<===寫在 裡面卻又會有些錯誤
複製代碼


而你用的專案 2010 我 2008 也不能用

給你一些參考解答
邊界問題 你看看 外介面 跟內介面 是否差距太小

把內介面的 最大超出範圍值設定小一點看看


問題應該是在這段
  1.    Private Function chkHit(ByVal Q As Label) As Boolean
  2.         If Q.Visible = False Then Return False
  3.         If B.Left < Q.Left - B.Width Then Return False
  4.         If B.Left > Q.Left + Q.Width Then Return False
  5.         If B.Top > Q.Top + Q.Height Then Return False
  6.         If B.Top < Q.Top - B.Height Then Return False
  7.         If bx < Q.Left - B.Width And B.Left >= Q.Left - B.Width Then
  8.             dx = -1
  9.         End If
  10.         If bx > Q.Left + Q.Width And B.Left <= Q.Left + Q.Width Then
  11.             dx = 1
  12.         End If
  13.         If by < Q.Top - B.Height And B.Top >= Q.Top - B.Height Then
  14.             dy = -1
  15.         End If
  16.         If by > Q.Top + Q.Height And B.Top <= Q.Top + Q.Height Then
  17.             dy = 1
  18.         End If
  19.         Q.Visible = False
  20.         Return True
  21.     End Function
複製代碼


...
瀏覽完整內容,請先 註冊登入會員
本人 都是寫 vb.net 如果看到本人的原創 請自備 .Net FrameWork 3.5

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
7
發表於 2012-4-21 01:02 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
這個...
  1. L.Left = 347
  2. B.Left = 347
  3. B.Top = 355
  4. dx = 1
  5. dy = 1
複製代碼
加到Button2裡,可以讓球歸原位
問題1似乎不是問題,難道是我會錯您的意思,有請更正

問題2:
在Timer2裡的...
  1. If B.Top + B.Height > L.Top Then
  2.         If B.Left > L.Left And B.Left + B.Width < L.Left + L.Width Then
  3.                 dy = -1
  4.         End If
  5. End If
複製代碼
的這裡裡面,加入您的球與橫桿的關係
假如您想將桿分成3塊,即左中右來判斷球要撞上去位置
將球的方向dx因素(正負號)與桿的位置點做判斷條件
球撞上桿左側,球向dx=-1
球撞上桿右側,球向dx=1
另外比較麻煩的是球撞上中間位置的判斷,因為會改變到vx值(移動量),如果您予許的話,那不管球從哪方向來,撞擊到桿中間位置,就讓它成為0吧(vx=0),這樣球就只會上下動了
此時球是不是處於上下動狀態?在這種狀態下如果再次撞擊到桿子的話仍可套用前項3項條件,只不過還得新增幾個式子
以下是最終整理後:
球撞上桿左側,球向dx=-1,vx=3(vx=3這是您的原設定值)
球撞上桿右側,球向dx=1,vx=3
球撞上桿中間,vx=0
至於桿的左中右就由您自己定義位置大小了
以上希望能幫到忙,有錯請糾正







補充內容 (2012-4-21 01:15 AM):
簡單說dx是控制方向,vx才是啟動您的球要動不動,球不動(左右動)那就是上下動了...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

A2515925 該用戶已被刪除
8
發表於 2012-4-21 08:09 AM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
ahway9988 發表於 2012-4-21 01:02 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

這個...
加到Button2裡,可以讓球歸原位
問題1似乎不是問題,難道是我會錯您的意思,有請更正

感謝大大的回答,重玩球的問題已解決,球根棒子的關係我也懂,不過Timer1裡面球根棒子的反彈方向,我不太知道該如何去設定,目前棒子的寬為55,如果設為60,把棒子切割為3段,25(左),10(中),25(右邊),這樣又該如何打出判斷式呢?...
瀏覽完整內容,請先 註冊登入會員
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
9
發表於 2012-4-21 09:26 PM|只看該作者
  1.                 If B.Left + B.Width \ 2 < L.Left + 25 Then
  2.                     dx = -1
  3.                     vx = 3
  4.                 ElseIf B.Left + B.Width \ 2 > L.Left + 35 Then
  5.                     dx = 1
  6.                     vx = 3
  7.                 Else
  8.                     vx = 0
  9.                 End If
複製代碼

加入我說的timer2的If B.Top + B.Height > L.Top Then ~ end if裡

應該就可以了


其中要算上球的厚度,加上球的厚度的一半才是判斷球中心點撞擊在桿子上的關係條件


...
瀏覽完整內容,請先 註冊登入會員
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

A2515925 該用戶已被刪除
10
發表於 2012-4-21 09:37 PM|只看該作者
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com
本帖最後由 A2515925 於 2012-4-21 09:41 PM 編輯
ahway9988 發表於 2012-4-21 09:26 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

加入我說的timer2的If B.Top + B.Height > L.Top Then ~ end if裡應該就可以了
其中要算上球的厚度,加上球 ...
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
11
發表於 2012-4-21 10:47 PM|只看該作者
本帖最後由 ahway9988 於 2012-4-22 12:56 AM 編輯

非也,您僅需在球碰到桿子時增加或改變vx,vy的數值即可,別忘了vx,vy它不只是球的恆動量,也是開關亦是加(減)速器
比方說您需要在球碰到桿子或球在移動時間裡過了n秒增加(改變)它的速度,建議您設置一個變數varAny(請自定變數)儲存球到碰到桿子次數或球在移動過程經過了幾秒,在碰到桿子的條件區塊裡或是在timer1區塊後設計您要在第幾次之後或是第幾秒之後改變它(vx and vy)的值
...
瀏覽完整內容,請先 註冊登入會員
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。

使用道具檢舉

A2515925 該用戶已被刪除
12
發表於 2012-4-21 11:35 PM|只看該作者
ahway9988 發表於 2012-4-21 10:47 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

非也,您僅需在球碰到桿子時增加或改變vx,vy的數值即可,別忘了vx,vy它不只是球的恆動量,也是開關亦是加(減) ...

恩,理解意思,只是不知道該如何寫出(新手一枚..)
  1. vx = CInt(Int((5* Rnd()) + 1))
複製代碼
這種樣子不知道能不能實現,或者有更好的辦法?...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
13
發表於 2012-4-22 09:05 PM|只看該作者
當然可以,這樣是隨機變換球速,看你自己需求
不過如此執行起來好像有點怪怪的XD
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

A2515925 該用戶已被刪除
14
發表於 2012-4-23 07:30 AM|只看該作者
ahway9988 發表於 2012-4-22 09:05 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

當然可以,這樣是隨機變換球速,看你自己需求
不過如此執行起來好像有點怪怪的XD ...

是阿,我也覺得怪怪的,順便問一下,如何判斷磚塊被打光呢?...
瀏覽完整內容,請先 註冊登入會員
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。

使用道具檢舉

Rank: 3Rank: 3Rank: 3

帖子
749
積分
1392 點
潛水值
15632 米
15
發表於 2012-4-23 11:20 PM|只看該作者
A2515925 發表於 2012-4-23 07:30 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

是阿,我也覺得怪怪的,順便問一下,如何判斷磚塊被打光呢?

我只想到兩種方法
1是每次撞擊完即判斷每個磚塊是否已經打過了,不知道是不是您設的L.Visable
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部