Skip to main content

PyDraw - v0.0.1-alpha

This is a drawing program for making sprites, it is still in development and won't be ready for a while.

Harry Syred
This is a drawing program for making sprites, it is still in development and won't be ready for a while.
This needs python3.x and PyGames only.
Under Mozilla Public License Version 2.0
- Colour picker
- Zoom
- Options menu
- Size settings
ToDo List:
- Save
- zoom settings
- Open
- Shortcut


Just an alpha version. No, save functionality, just the ability to draw. Screenshots could save it but you will have to start from scratch to edit any of it. Still cool though


Home Page
Github repo


PyDraw — 22 May, 2019

PyDraw v0.0.2-alpha — 27 May, 2019

PyDraw v0.0.1-alpha — 27 May, 2019

PyDraw v0.0.3-alpha — 7 Jun, 2019

PyDraw v0.0.5-alpha — 6 Jul, 2019 account Comments

  • Alex 2019-05-24 10:14:02.156022

    Is it third python or Second???

    Harry Syred 2019-05-27 01:39:02.235103

  • plutonion 2019-05-26 16:27:06.697896

    I've just updated your code. !!! YOU NEED TO INSTALL tkcolorpicker BEFORE !!! The code: import pygame from pygame.gfxdraw import * from tkinter import * from tkcolorpicker import askcolor import json run=True def AskColor(): global penColor #To change it (Because I've declared it after the function.) root_buffer=Tk() #A buffer to stock a screen color_temp=askcolor(parent=root_buffer,alpha=True) #But you can change to False root_buffer.destroy() #And delete the background display (Created by tkinter) if color_temp==None: return penColor else: return color_temp[0] def save(): open('save.json','w').write(json.dumps(pixels, sort_keys=True,indent=4, separators=(',', ': ')) ) def load(): global pixels try: pixels=json.load(open('save.json')) print('save.json have been loaded !') except: print('No save detected !') screen = pygame.display.set_mode((1000,700),pygame.RESIZABLE) #Just create a simple display bg=(0,0,0)#Background penColor=(155,155,155) pixels=[]#All pixels, can be save as a json file later PixelSize=20 while run: PixelSize=max(0,PixelSize) #To not divide by zero. mx,my=pygame.mouse.get_pos() #Get the exact position of mouse cx,cy=int(mx/PixelSize)*PixelSize,int(my/PixelSize)*PixelSize #Convert to box area mouse position screen.fill(bg) rectangle(screen,((cx,cy),(PixelSize,PixelSize)),(255-penColor[0],255-penColor[1],255-penColor[2]) ) #^^^Draw a rectangle with inverted brush's color to see where you paint the pixel ^^^ for i in pixels:#Blit all pixels box(screen,((i['x']*PixelSize,i['y']*PixelSize),(PixelSize,PixelSize)),(i['color'])) for event in pygame.event.get(): if event.type == pygame.QUIT: run=False if event.type == pygame.VIDEORESIZE: screen=pygame.display.set_mode(event.dict['size'],pygame.RESIZABLE) if event.type == pygame.MOUSEBUTTONDOWN: if event.button==1: pixels.append({'x':cx//PixelSize,'y':cy//PixelSize,'color':penColor}) if event.button==4: #Scroll zoom in PixelSize+=5 if event.button==5: #Scroll zoom out PixelSize-=5 if event.type == pygame.KEYDOWN: if event.key == pygame.K_s: save() elif event.key == pygame.K_l: load() elif event.key == pygame.K_DELETE: pixels=[] else: penColor=AskColor() pygame.display.update() pygame.quit()

    Harry Syred 2019-05-27 02:23:15.135298

    The code on Pastebin lines separated and indented properly to the best of my ability if anyone wants it:

    Harry Syred 2019-05-27 02:04:52.384749

    This is a totally different code, firstly mine is 257 lines compared to the 62 you just posted, I used object classes and just PyGame when you used lists and multiple other modules. Also please use PasBin next time or GitHub.