私は実際に長いawnserが必要な基本的な質問があります。誰かが私にレットジャンプをする方法を教えてもらえますか?私は四角形のサンプルが必要です。Gravity with Rects Pygame
-1
A
答えて
1
私はあなたの質問を参照して、私はあなたのためのいくつかのサンプルコードを作ったと思いますが、まずそれがどのように動作するか教えてください。あなたの位置をY軸に保存するY変数に加えて、velocityYという変数が必要です。あなたは-10を言うと、それはあなたの矩形が空に飛んで行いますので、我々がする必要があることができますしvelocityYを設定してジャンプすると
while True:
y += velocityY # <----- Here
manage_window()
for event in pygame.event.get():
handle_event(event)
pygame.display.flip()
:フレームごとにゲーム内でY変数は、このようなvelocityYで変更されました重力を加える。ここに長い例があります(重要な部分です):
import pygame
pygame.init()
window = pygame.display.set_mode((800, 600))
x, y = 300, 400
xVelocity, yVelocity = 0, 0
rect = pygame.Rect(x, y, 200, 200)
groundRect = pygame.Rect(0, 500, 800, 100)
clock = pygame.time.Clock()
white = 255, 255, 255
red = 255, 0, 0
black = 0, 0, 0
blue = 0, 0, 255
while True:
clock.tick(60) # Make sure the game is running at 60 FPS
rect = pygame.Rect(x, y, 200, 200) # Updating our rect to match coordinates
groundRect = pygame.Rect(0, 500, 800, 100) # Creating ground rect
# HERE IS WHAT YOU CARE ABOUT #
yVelocity += 0.2 # Gravity is pulling the rect down
x += xVelocity # Here we update our velocity on the X axis
y += yVelocity # Here we update our velocity on the Y axis
# HERE IS WHAT YOU CARE ABOUT #
if groundRect.colliderect(rect): # Check if the rect is colliding with the ground
y = groundRect.top-rect.height
yVelocity = 0
window.fill(white)
pygame.draw.rect(window, red, rect) # Here we draw the rect
pygame.draw.rect(window, black, rect, 5) # Here we draw the black box around the rect
pygame.draw.rect(window, blue, groundRect) # Here we draw the ground
pygame.draw.rect(window, black, groundRect, 5) # Here we draw the black box around the rect
for event in pygame.event.get(): # Getting events
if event.type == pygame.QUIT: # If someone presses X on the window, then we want to quit
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE: # Pressing space will make the cube jump
if y >= 300: # Checking if cube is on the ground and not in the air
yVelocity = -10 # Setting velocity to upwards
pygame.display.flip() # Updating the screen
+0
あなたは 'rect'とgroundRect'を2回作成します。 'while 'の中で2回目を削除することができます。 – furas
+0
私は空の引数がたくさんあることを知り続けます。議論として何を置くべきですか? –
関連する問題
- 1. pygameの中Rects間のカラーキー衝突、Pythonの3
- 2. Firebaserecyclerview Gravity
- 3. horizontalscrollview gravity
- 4. Android ExpandableListView GroupIndicator gravity
- 5. Gravity Formsパーソナリティクイズアドオン
- 6. GridLayoutManager ViewHolder gravity
- 7. Box2D(C++)Gravity Wells
- 8. Woocommerce + Gravity Forms
- 9. Pygameでジャンプする
- 10. GravityフォームのGoogleトラッキングコード
- 11. JavaScript - Gravity setInterval() - プラットフォームの衝突
- 12. Gravity Forms Merge Tags(単一フィールド?)
- 13. paddingとandroidの違い:gravity
- 14. Gravity Forms WebAPI(GET Forbidden - PHP)
- 15. Pygame spritecollide hitboxes
- 16. Pygameバグがインクリメントされました
- 17. Gravity Forms複数ページPOST値を失う
- 18. pygameの - pygameのはここ
- 19. Pygameとスプライトの衝突
- 20. Qt4 QGraphicsScene mac ppc 10.4レンダリングのバグ、rects後の行を隠す?
- 21. SVG rectsがFirefoxに表示されない
- 22. Gravity Formsエントリ/ entry_detailページのカスタム書式
- 23. アンドロイド:TextViewのgravityが動作しない
- 24. Android Spinner Gravityが動作しない
- 25. ユニティ:Faux Gravity - 内側のカプセル/シリンダー
- 26. WP Gravityフォームプラグインの送信ボタンを削除
- 27. Gravity FFormsの年齢を計算する
- 28. カスタムビューでGravity()を取得するには?
- 29. GravityViewプラグインフィルタをGravityフォームフィールドで作成する
- 30. .png make pygame laggy
これは、Al Sweigartの[書籍](https://inventwithpython.com/makinggames.pdf)に記載されていると思います。 – fenceop
正確なページはありますか? –
'gravity'は常にポジションに追加する値で、バックグラウンドとの衝突のみが落ちるのを止めます。 – furas