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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1785閲覧

Bounceゲームの中のボールを増やしたいです

iyakaero

総合スコア4

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/07/23 08:50

PythonでBounceゲームをやってます。その過程で中のボールを2つに増やしたいんですけどやり方が分かりません。
本に書いてあるやつでした。

from tkinter import *
import random
import time

class Ball:
def init(self, canvas, paddle, color):
self.canvas = canvas
self.paddle = paddle

self.id = canvas.create_oval(10, 10, 25, 25, fill=color) starts = [-3, -2, -1, 1, 2, 3] random.shuffle(starts) self.x = starts[0] self.y = -3 self.canvas_height = canvas.winfo_height() self.canvas_width = canvas.winfo_width() self.is_hitting_bottom = False canvas.move(self.id, 245, 100) def draw(self): self.canvas.move(self.id, self.x, self.y) pos = self.canvas.coords(self.id) if pos[1] <= 0: self.y = 1 if pos[3] >= self.canvas_height: # self.y = -1 self.is_hitting_bottom = True if self.hit_top_paddle(pos) == True: self.y = -3 if self.hit_bottom_paddle(pos) == True: self.y = 1 if pos[0] <= 0: self.x = 3 if pos[2] >= self.canvas_width: self.x = -3 def hit_top_paddle(self, pos): paddle_pos = self.canvas.coords(self.paddle.id) if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]: if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]: return True return False def hit_bottom_paddle(self, pos): paddle_pos = self.canvas.coords(self.paddle.id) if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]: if pos[1] >= paddle_pos[1] and pos[1] <= paddle_pos[3]: return True return False

class Paddle:
def init(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_rectangle(0, 0, 100, 10, fill=color)

self.x = 0 self.canvas_width = canvas.winfo_width() canvas.move(self.id, 200, 300) canvas.bind_all('<KeyPress-Left>', self.move_left) canvas.bind_all('<KeyPress-Right>', self.move_right) def draw(self): self.canvas.move(self.id, self.x, 0) pos = self.canvas.coords(self.id) if pos[0] <= 0: self.x = 0 if pos[2] >= self.canvas_width: self.x = 0 def move_left(self, event): self.x = -2 def move_right(self, event): self.x = 2

tk = Tk()
tk.title('Game')
canvas = Canvas(tk, width=550, height=400, bd=0, highlightthickness=0)
canvas.pack()
tk.update()

paddle = Paddle(canvas, 'blue')
ball = Ball(canvas, paddle, 'red')

while 1:
if ball.is_hitting_bottom == False:
ball.draw()
paddle.draw()

tk.update_idletasks() tk.update() time.sleep(0.01)

元がこれなんですけどここからボールをもうひとつふやすということをしたいです。どうか教えてください。

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

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

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

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

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

hayataka2049

2018/07/23 08:58

質問の再編集画面を開き、https://teratail.com/help/question-tips#questionTips3-5 を参考にコードをシンタックスハイライトしてください。コード全体を選択して<code>ボタンを押し、「ここに言語を入力」を「python」に書き換えると良いです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問