2013-09-28 30 views
2

我是PyGame的新手,需要一些幫助!
讓我開始說我對Python語言有一個基本的瞭解,我最近開始學習如何使用PyGame,以及它對我來說是新的東西。不過,當我嘗試編寫PyGame代碼時,我確實遇到了很多困難。 爲了讓你知道我已經閱讀並觀看了很多教程,但是他們沒有一個以我需要的方式幫助我。Pygame help needed

我的問題是,我試圖讓一個盒子出現在屏幕上寫有一個單詞,如:「你好」。點擊該按鈕後,應該會出現hello。

這是我的計劃:

  • 我做一個命名窗格類的
  • 屬性會之類的東西:XPOS,ypos,文本,寬度高度
  • 方法該類將是類似的東西:添加(textToDisplay),刪除(textToDisplay) - (刪除功能目前不是那麼重要),displayPane()

如果可能,請告訴我,如果這實際上是可行的使用python和pygame /有點提示我我會怎麼做(像一些有用的鏈接,因爲谷歌並沒有是我的朋友,當它已經下降到搜索。 XD)?如果它不是什麼語言,你會推薦我這樣做?

+0

如果我沒有立即回覆任何評論,那是因爲我可能在牀上。因爲我住的地方相當晚。 :) – PythonNovice

+3

是的,這在Pygame中是可能的。但你的問題非常模糊。什麼概念你準確地遇到麻煩? – Shashank

+0

我對pygame不熟悉,但是你可以在Tkinter中輕鬆做到這一點(雖然我不喜歡Tkinter) – erjoalgo

回答

3

看看:

http://pygame.org/docs/ref/mouse.html#pygame.mouse.get_pos http://pygame.org/docs/ref/rect.html#pygame.Rect.collidepoint http://pygame.org/docs/ref/draw.html#pygame.draw.rect http://pygame.org/docs/ref/font.html#pygame.font.SysFont

我的建議是一個程序的方法,如果你只有一個形狀處理:

  • 使用pygame.draw.rect畫點上的矩形。
  • 使用函數捕獲鼠標點擊及其位置。
  • 碰撞鼠標點擊 與你矩形的位置(使用對象列表,如果你有 幾個)。
  • 創建一個在屏幕上繪製文本的函數,並將其與觸碰鼠標點擊到矩形的函數關聯起來 。

否則,我會採取面向對象的方法,並使用pygame.sprite.Sprite類爲每個形狀,或自定義類,如果您有特殊需要。當然,點擊捕獲和混合部分仍然是程序性的。

我適應一個項目,我的工作做什麼,我想是你想要什麼:

enter image description here

你不能真正看到光標,但我用鼠標點擊按鈕創建圓圈並用主按鈕顯示文本。

來源:http://pastebin.com/jycEFAtX

注:這是一個圓圈,而不是一個矩形,因爲我與圈工作,但應該是很容易爲你改變。一切都是一團糟,因爲我只是調整了我所擁有的內容,並將它們放在一個文件中(最好將它分成不同的文件)。使用它只是爲了瞭解如何做你想做的事情。

您可以通過將obj.text設置爲None來刪除文本,例如event.button == SECONDARY_BUTTON,這樣您可以通過點擊圓圈上的輔助鼠標按鈕來刪除文本。

附註:注意我有一個函數可以將對象與鼠標位置相碰撞(因爲它需要我正在處理的內容),但是你並不需要它。如上所述,您可以使用pygame.Rectpygame.Rect.collidepoint

+0

非常感謝你這些是我真正需要的那種鏈接和幫助。謝謝。 – PythonNovice

+0

我再次感謝你的幫助,但我無法控制任何事情。這個項目正在殺死我:(。我只需要用__classes__在__pygmae__中__draw一個矩形__,用__classes__寫入__「hello」。對我來說,這似乎很容易,但是當我來做這件事時,我無法做到它。 – PythonNovice