質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

Q&A

解決済

1回答

1507閲覧

pygameでゲームに時間制限とスコア表示を作りたい

shinykoike

総合スコア1

Pygame

Pygameは、ビデオゲームの製作用に設計されたクロスプラットフォームのPythonモジュールセットです。Pythonでコンピューターグラフィックスと音声を扱うためのライブラリが含まれています。

0グッド

0クリップ

投稿2023/08/26 04:29

編集2023/08/30 13:16

pygameでコイン集めゲームにスコア表示を作りたいです
どのようなコードを書けばよいでしょうか
試したこと#背景色を塗りつぶすの下に
def draw(self):
text = self.font.render("{:04d}".format(self.point), True, (63,255,63))
create_text = screen.draw
create_text(score, [10, 5])
というコードを加えましたがスコア表示ができません

import pygame
import random

#変数
score = 0 #スコア用の変数
#初期化
pygame.init()
screen = pygame.display.set_mode([800,600])
pygame.display.set_caption("Coin Collector Game")

プレイヤー関連

player_image = pygame.image.load("date/player.png")# 画像を読み込む
player_image = pygame.transform.scale(player_image, [100, 100])# 画像サイズを指定する
player_rect = player_image.get_rect()# Rect (四角) オブジェクトも生成しておく
#コイン関連
coin_image = pygame.image.load("date/coin.png")# 画像を読み込む
coin_image = pygame.transform.scale(coin_image, [80, 80])# 画像サイズを指定する
coins_rect = []
for i in range(6):
x = random.randint(0, 700)
y = random.randint(0,500)
coins_rect.append(pygame.Rect(x, y, coin_image.get_width(), coin_image.get_height()))

スコア用

collected_coins = 0

#ゲームループ
running = True
while running == True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# キー操作を受け付けてプレイヤーを動かす
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] == True:
player_rect.x -= 1
if keys[pygame.K_RIGHT] == True:
player_rect.x += 1
if keys[pygame.K_UP] == True:
player_rect.y -= 1
if keys[pygame.K_DOWN] == True:
player_rect.y += 1
# プレイヤーがコインに触れた時の処理
for coin_rect in coins_rect:
if player_rect.colliderect(coin_rect) == True:
coins_rect.remove(coin_rect)
collected_coins += 1

#背景色を塗りつぶす screen.fill("blue") def draw(self): text = self.font.render("{:04d}".format(self.point), True, (63,255,63)) create_text = screen.draw create_text(score, [10, 5]) score = collected_coins # コインとプレイヤーを描画。 for coin_rect in coins_rect: screen.blit(coin_image, coin_rect) screen.blit(player_image, player_rect) pygame.display.update() # クリア時の処理 if collected_coins == 6: running = False

ゲーム終了

pygame.quit()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinykoike

2023/08/26 06:04

def display_score_collected_coins(): txt = font.render(str(score),True,"black") screen.blit(txt[800, 600]) というコードを追加しました
AbeTakashi

2023/08/26 06:25

↑こちらの内容は質問文を編集して追記する形で記入してください(コメントは見ない人がいます) また、pythonのコードはインデントが重要なので、表示上でしっかり反映されるようにしてください。 参考) https://teratail.com/help/question-tips の「ソースコードを書きましょう」を見てください。
guest

回答1

0

自己解決

#背景色を塗りつぶすの下にコード
def draw(self):
text = self.font.render("{:04d}".format(self.point), True, (63,255,63))
create_text = screen.draw
create_text(score, [10, 5])

score_font = pygame.font.SysFont(None, 50)
score_text = score_font.render("score:" +str(collected_coins), True, (255,255,255))
screen.blit(score_text, (10, 10))
に変えてたら出来ました

投稿2023/08/31 05:07

shinykoike

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問