Homebrew Programming in PYTHON-part 3

Working with Images
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 image
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.

Redimentioning
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 colors
The function psp2d.Color is used to create color palettes based on an RGB basis: psp2d.Color(R,G,B)

with that said, to make the red color we use: psp2d.Color(255,0,0)

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)

<span style="color:rgb(51,51,51);font-family:'LucidaGrande','TrebuchetMS',Verdana,Helvetica,Arial,sans-serif;line-height:18.200000762939453px;">CLEAR_COLOR is nothing more than black. Play around with the different numbers to get different colors.

<span style="color:rgb(51,51,51);font-family:'LucidaGrande','TrebuchetMS',Verdana,Helvetica,Arial,sans-serif;line-height:18.200000762939453px;">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

<span style="color:rgb(51,51,51);font-family:'LucidaGrande','TrebuchetMS',Verdana,Helvetica,Arial,sans-serif;line-height:18.200000762939453px;">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

<span style="color:rgb(51,51,51);font-family:'LucidaGrande','TrebuchetMS',Verdana,Helvetica,Arial,sans-serif;line-height:18.200000762939453px;">This is all for now.