Working with ImagesEdit
Working with images in psp2d is essential to make your app nicer. Opening an image is simple as we saw before:
image = psp2d.Image("image.png")
An image can be of any size up to the psp's screen resolution (480x272), and it can be moved around, resized, blend, cleared, etc
Placing an imageEdit
You can place an image anywhere on the screen based on the x y coordinates.
screen = psp2d.Screen() image = psp2d.Image("image.png") screen.blit(image, dx=50, dy=50)
the values dx and dy takes care of placing the image into the coordinates you give it, if none are given then the default (dx=0, dy=0) is used.
Just like placing, redimentioning takes place at the time of doing a screen.blit:
screen.blit(image, dw=50, dh=50, blend=True)
dw and dh are values for width and height respectively.
Let's take a look at this code:
import psp2d screen = psp2d.Screen() image = psp2d.Image("ICON0.PNG") screen.blit(image, dx=50, dy=50) screen.blit(image, dx=200, dy=150, dw=32, blend=True) screen.swap() while True: pad = psp2d.Controller() if pad.circle: break
and it's result:
Working with colorsEdit
The function psp2d.Color is used to create color palettes based on an RGB basis:
with that said, to make the red color we use:
0 is minimum and 255 maximum. The same applies to green and blue:
psp2d.Color(0,255,0) # Green psp2d.Color(0,0,255) # Blue
If you have ever studied art class you probably know that mixing different colors give you another color, here is some other colors I have found through trial and error:
WHITE_COLOR = psp2d.Color(255,255,255) CLEAR_COLOR = psp2d.Color(0,0,0) RED_COLOR = psp2d.Color(255, 0, 0) GREEN_COLOR = psp2d.Color(0, 255, 0) BLUE_COLOR = psp2d.Color(0,50,255) YELLOW_COLOR = psp2d.Color(255,255,0)
CLEAR_COLOR is nothing more than black. Play around with the different numbers to get different colors.
Here is the example code for psptools' pixel fixer:
def pixel_fix(): # Stuck pixel fixer x12 = True log.write("pixel fixer started\n") while x12 == True: pad = psp2d.Controller() time.sleep(0.07) img.clear(WHITE_COLOR) scr.blit(img) scr.swap() time.sleep(0.07) img.clear(RED_COLOR) scr.blit(img) scr.swap() time.sleep(0.07) img.clear(GREEN_COLOR) scr.blit(img) scr.swap() time.sleep(0.07) img.clear(BLUE_COLOR) scr.blit(img) scr.swap() time.sleep(0.07) img.clear(YELLOW_COLOR) scr.blit(img) scr.swap() if pad.triangle: x12 = False log.write("pixel fixer ended by user\n") main()
There is no much mystery here, basically the same code gets repeted over and over again until the user press circle, the main code is:
time.sleep(0.07) # Delay between screen change img.clear(COLOR) # The color to fill the screen with, this is the only thing that changes in the entire function scr.blit(img) # You should already know this by now scr.swap() # # You should already know this by now
This is all for now.