日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法

發(fā)布時間:2024/1/18 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

注:圖中標識的1,2,3,4 就是所指向的那一行代碼,上面是本人的正確代碼

解決辦法:書上的代碼內(nèi)容順序是1代碼在2代碼的前面,其實只要把1代碼放到2代碼后面就可以解決靠邊的問題

飛船初始靠邊原因:1在2前面 那么執(zhí)行順序就是 先執(zhí)行1 將float(self.rect.x)的值賦值給self.x,由于剛開始self.rect.x默認值是0,所以此時self.x = 0,然后再運行2代碼(self.rect.midbottom = self.screen_rect.midbottom)執(zhí)行這行代碼就是為了讓飛船居中,self.rect.midbottom的值其實本質就是設置self.rect.x和self.rect.y(就像設置self.rect.x為屏幕寬度的一半,然后self.rect.y為整個屏幕的高度,這樣就會產(chǎn)生底部居中的效果)?書上這句話是起作用了,此時的self.rect.x 應該大致等于屏幕的寬度的一半,飛船也是居中狀態(tài)的,但是由于主程序中while True一開始就一直循環(huán),所以一開始運行程序時就會立馬走到4代碼執(zhí)行updateShip方法 然后由于3代碼是在兩個if語句之外的所以不用判斷就會立即執(zhí)行self.rect.x = self.x 此時由于沒有觸發(fā)任何事件,所以self.x沒有被重新賦值所以 還是0 ,3代碼就把self.x = 0 賦值給了self.rect.x (就是這里覆蓋了2代碼給他賦予的居中的值,由于代碼運行速度很快瞬間就替換了居中的值,所以就會出現(xiàn)一開始靠邊的效果), x=0 所以飛船在最左邊

而1放在2后面能成功的原因就是剛剛上面說的2中的midbottom代碼賦值能改變self.rect.x的值讓其變?yōu)槠聊粚挾鹊囊话?#xff0c;那么此時在執(zhí)行1代碼self.x = float(self.rect.x) 中的self.rect.x就不在是0 而是屏幕寬度的一半,self.x的值就變?yōu)榱似聊粚挾鹊囊话?#xff0c;所以此時再運行代碼就和上面情況一樣但是不同的是self.x的值不再是0 而是屏幕寬度的一半所以進行3代碼時賦值的不是0 而是屏幕一半k寬度從而居中

?加油!

總結

以上是生活随笔為你收集整理的Python 编程从入门到实践 第十二章 飞船开始游戏时靠着边界的问题解决办法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。