始めまして、python もといpygameを用いたプログラミングについてご質問があり、書き込ませていただきました。
pygameを用いたイラストアプリケーションを下記のサイトを参考にして作成しているのですが
マウスイベントの作成
色を変更すると既にキャンバスに描いた色も変わってしまうバグが治らず、苦戦しております。
python
1#!/usr/bin/env python 2# _*_ coding: utf-8 _*_ 3 4import pygame 5from pygame.locals import * 6import sys 7 8####ウィンドウサイズ横640縦480#### 9SCREEN_SIZE = (640, 480) 10 11pygame.init() #初期化 12screen = pygame.display.set_mode(SCREEN_SIZE) 13pygame.display.set_caption("お絵かき") #タイトル名 14 15####素材の追加#### 16#背景 17backImg = pygame.image.load("canvas.png").convert() 18#色 19blackImg = pygame.image.load("circle_black.png").convert_alpha() 20redImg = pygame.image.load("circle_red.png").convert_alpha() 21yellowImg = pygame.image.load("circle_yellow.png").convert_alpha() 22mizuiroImg = pygame.image.load("circle_mizuiro.png").convert_alpha() 23perplueImg = pygame.image.load("circle_perplue.png").convert_alpha() 24blueImg = pygame.image.load("circle_blue.png").convert_alpha() 25greenImg = pygame.image.load("circle_green.png").convert_alpha() 26#カラーアイコン 27blackIcon = pygame.image.load("block_black.png").convert_alpha() 28redIcon = pygame.image.load("block_red.png").convert_alpha() 29yellowIcon = pygame.image.load("block_yellow.png").convert_alpha() 30mizuiroIcon = pygame.image.load("block_mizuiro.png").convert_alpha() 31perplueIcon = pygame.image.load("block_perplue.png").convert_alpha() 32blueIcon = pygame.image.load("block_blue.png").convert_alpha() 33greenIcon = pygame.image.load("block_green.png").convert_alpha() 34whiteIcon = pygame.image.load("block_white.png").convert_alpha() 35#ボタン 36changebutton = pygame.image.load("button.png").convert_alpha() 37 38#色と太さ 39color_list = [blackImg, redImg, yellowImg, mizuiroImg, perplueImg, 40 blueImg, greenImg] 41 42color_Icon = [blackIcon, redIcon, yellowIcon, mizuiroIcon, perplueIcon, 43 blueIcon, greenIcon, whiteIcon] 44 45cur_pos = (0,0) #色の位置 46pythons_pos = [] 47c = 5 #色番号を格納する変数と初期色 48 49 50####描画ループ処理#### 51while True: 52 53 screen.blit(backImg,(0,0)) #背景 54 screen.blit(color_Icon[0],(30,6)) #ボタンの位置 55 screen.blit(color_Icon[1],(60,6)) 56 screen.blit(color_Icon[2],(90,6)) 57 screen.blit(color_Icon[3],(120,6)) 58 screen.blit(color_Icon[4],(150,6)) 59 screen.blit(color_Icon[5],(180,6)) 60 screen.blit(color_Icon[6],(210,6)) 61 screen.blit(color_Icon[7],(240,6)) 62 63 #描画処理 64 mouse_pressed = pygame.mouse.get_pressed() 65 if mouse_pressed[0]: 66 #メニューに色が及ばないようにする 67 if y >= 30: 68 x, y = pygame.mouse.get_pos() 69 x -= color_list[c].get_width() / 2 70 y -= color_list[c].get_height() / 2 71 pythons_pos.append((x,y)) 72 73 #黒変更 74 if x >= 30 and x <= 50 and y >= 6 and y <= 26: 75 c = 0 76 77 #赤変更 78 if x >= 60 and x <= 80 and y >= 6 and y <= 26: 79 c = 1 80 81 #黄変更 82 if x >= 90 and x <= 110 and y >= 6 and y <=26: 83 c = 2 84 85 #マウスの位置に色を追従させる 86 x, y = pygame.mouse.get_pos() 87 #メニュー領域に色が追従しないようにする 88 if y >= 35: 89 x -= color_list[c].get_width() / 2 90 y -= color_list[c].get_height() / 2 91 cur_pos = (x,y) 92 93 #キャンパスに色を落とす 94 screen.blit(color_list[c], cur_pos) 95 for i, j in pythons_pos: 96 screen.blit(color_list[c],(i,j)) 97 pygame.display.update() 98 99 #終了処理 100 for event in pygame.event.get(): 101 if event.type == QUIT: 102 sys.exit() 103 104
どなたかわかる方は回答して頂けると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/10 07:39