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

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

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

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

解決済

【python】イラストアプリの色替えにバグが出る

Gluek731
Gluek731

総合スコア26

Python

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

1回答

0リアクション

0クリップ

1346閲覧

投稿2015/11/08 09:54

編集2015/11/10 01:00

始めまして、python もといpygameを用いたプログラミングについてご質問があり、書き込ませていただきました。

pygameを用いたイラストアプリケーションを下記のサイトを参考にして作成しているのですが
マウスイベントの作成

色を変更すると既にキャンバスに描いた色も変わってしまうバグが治らず、苦戦しております。

python

#!/usr/bin/env python # _*_ coding: utf-8 _*_ import pygame from pygame.locals import * import sys ####ウィンドウサイズ横640縦480#### SCREEN_SIZE = (640, 480) pygame.init() #初期化 screen = pygame.display.set_mode(SCREEN_SIZE) pygame.display.set_caption("お絵かき") #タイトル名 ####素材の追加#### #背景 backImg = pygame.image.load("canvas.png").convert() #色 blackImg = pygame.image.load("circle_black.png").convert_alpha() redImg = pygame.image.load("circle_red.png").convert_alpha() yellowImg = pygame.image.load("circle_yellow.png").convert_alpha() mizuiroImg = pygame.image.load("circle_mizuiro.png").convert_alpha() perplueImg = pygame.image.load("circle_perplue.png").convert_alpha() blueImg = pygame.image.load("circle_blue.png").convert_alpha() greenImg = pygame.image.load("circle_green.png").convert_alpha() #カラーアイコン blackIcon = pygame.image.load("block_black.png").convert_alpha() redIcon = pygame.image.load("block_red.png").convert_alpha() yellowIcon = pygame.image.load("block_yellow.png").convert_alpha() mizuiroIcon = pygame.image.load("block_mizuiro.png").convert_alpha() perplueIcon = pygame.image.load("block_perplue.png").convert_alpha() blueIcon = pygame.image.load("block_blue.png").convert_alpha() greenIcon = pygame.image.load("block_green.png").convert_alpha() whiteIcon = pygame.image.load("block_white.png").convert_alpha() #ボタン changebutton = pygame.image.load("button.png").convert_alpha() #色と太さ color_list = [blackImg, redImg, yellowImg, mizuiroImg, perplueImg, blueImg, greenImg] color_Icon = [blackIcon, redIcon, yellowIcon, mizuiroIcon, perplueIcon, blueIcon, greenIcon, whiteIcon] cur_pos = (0,0) #色の位置 pythons_pos = [] c = 5 #色番号を格納する変数と初期色 ####描画ループ処理#### while True: screen.blit(backImg,(0,0)) #背景 screen.blit(color_Icon[0],(30,6)) #ボタンの位置 screen.blit(color_Icon[1],(60,6)) screen.blit(color_Icon[2],(90,6)) screen.blit(color_Icon[3],(120,6)) screen.blit(color_Icon[4],(150,6)) screen.blit(color_Icon[5],(180,6)) screen.blit(color_Icon[6],(210,6)) screen.blit(color_Icon[7],(240,6)) #描画処理 mouse_pressed = pygame.mouse.get_pressed() if mouse_pressed[0]: #メニューに色が及ばないようにする if y >= 30: x, y = pygame.mouse.get_pos() x -= color_list[c].get_width() / 2 y -= color_list[c].get_height() / 2 pythons_pos.append((x,y)) #黒変更 if x >= 30 and x <= 50 and y >= 6 and y <= 26: c = 0 #赤変更 if x >= 60 and x <= 80 and y >= 6 and y <= 26: c = 1 #黄変更 if x >= 90 and x <= 110 and y >= 6 and y <=26: c = 2 #マウスの位置に色を追従させる x, y = pygame.mouse.get_pos() #メニュー領域に色が追従しないようにする if y >= 35: x -= color_list[c].get_width() / 2 y -= color_list[c].get_height() / 2 cur_pos = (x,y) #キャンパスに色を落とす screen.blit(color_list[c], cur_pos) for i, j in pythons_pos: screen.blit(color_list[c],(i,j)) pygame.display.update() #終了処理 for event in pygame.event.get(): if event.type == QUIT: sys.exit()

どなたかわかる方は回答して頂けると助かります。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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