Advertising
Working with Images.Working with images in psp2d is essential to make your app nicer. Opening an image is simple as we saw before:
- Code: Select all
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.
- Code: Select all
screen = psp2d.Screen()
image = psp2d.Image("image.png")
screen.blit(image, dx=50, dy=50)
Redimentioning:
Just like placing, redimentioning takes place at the time of doing a screen.blit:
- Code: Select all
screen.blit(image, dw=50, dh=50, blend=True)
Let's take a look at this code:
- Code: Select all
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:
- Code: Select all
psp2d.Color(R,G,B)
with that said, to make the red color we use:
- Code: Select all
psp2d.Color(255,0,0)
- Code: Select all
psp2d.Color(0,255,0) # Green
psp2d.Color(0,0,255) # Blue
- Code: Select all
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)
Here is the example code for psptools' pixel fixer:
- Code: Select all
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:
- Code: Select all
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.
Previous: viewtopic.php?f=5&t=13373
Next: viewtopic.php?f=37&t=33157