@ -2482,10 +2482,10 @@ simpleaudio.play_buffer(samples_b, <span class="hljs-number">1</span>, <span cla
< span class = "hljs-keyword" > import< / span > pygame < span class = "hljs-keyword" > as< / span > pg
pg.init()
screen = pg.display.set_mode((< span class = "hljs-number" > 500< / span > , < span class = "hljs-number" > 500< / span > ))
rect = pg.Rect(< span class = "hljs-number" > 235 < / span > , < span class = "hljs-number" > 235 < / span > , < span class = "hljs-number" > 3 0< / span > , < span class = "hljs-number" > 3 0< / span > )
rect = pg.Rect(< span class = "hljs-number" > 240 < / span > , < span class = "hljs-number" > 240 < / span > , < span class = "hljs-number" > 2 0< / span > , < span class = "hljs-number" > 2 0< / span > )
< span class = "hljs-keyword" > while< / span > all(event.type != pg.QUIT < span class = "hljs-keyword" > for< / span > event < span class = "hljs-keyword" > in< / span > pg.event.get()):
key s = {pg.K_UP: (< span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > -3< / span > ), pg.K_RIGHT: (< span class = "hljs-number" > 3< / span > , < span class = "hljs-number" > 0< / span > ), pg.K_DOWN: (< span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > 3< / span > ), pg.K_LEFT: (< span class = "hljs-number" > -3< / span > , < span class = "hljs-number" > 0< / span > )}
< span class = "hljs-keyword" > for< / span > delta < span class = "hljs-keyword" > in< / span > {key s.get(i) < span class = "hljs-keyword" > for< / span > i, on < span class = "hljs-keyword" > in< / span > enumerate(pg.key.get_pressed()) < span class = "hljs-keyword" > if< / span > on}:
delta s = {pg.K_UP: (< span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > -3< / span > ), pg.K_RIGHT: (< span class = "hljs-number" > 3< / span > , < span class = "hljs-number" > 0< / span > ), pg.K_DOWN: (< span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > 3< / span > ), pg.K_LEFT: (< span class = "hljs-number" > -3< / span > , < span class = "hljs-number" > 0< / span > )}
< span class = "hljs-keyword" > for< / span > delta < span class = "hljs-keyword" > in< / span > {delta s.get(i) < span class = "hljs-keyword" > for< / span > i, on < span class = "hljs-keyword" > in< / span > enumerate(pg.key.get_pressed()) < span class = "hljs-keyword" > if< / span > on}:
rect = rect.move(delta) < span class = "hljs-keyword" > if< / span > delta < span class = "hljs-keyword" > else< / span > rect
screen.fill((< span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > 0< / span > , < span class = "hljs-number" > 0< / span > ))
pg.draw.rect(screen, (< span class = "hljs-number" > 255< / span > , < span class = "hljs-number" > 255< / span > , < span class = "hljs-number" > 255< / span > ), rect)
@ -2493,54 +2493,54 @@ rect = pg.Rect(<span class="hljs-number">235</span>, <span class="hljs-number">2
< / code > < / pre > < / div > < / div >
< div > < h3 id = "rect" > Rect< / h3 > < p > < strong > Object for storing rectangular coordinates.< / strong > < / p > < pre > < code class = "python language-python hljs" > < Rect> = pg.Rect(topleft_x, topleft_y, width, height)
< tuple > = < Rect> .topleft/topright/bottomright/bottomleft/center
< in t> = < Rect> .x/y/centerx/centery
< Rect> = < Rect> .move(< tuple> ) < span class = "hljs-comment" > # Or: < Rect> .move(< int> , < int> )< / span >
< div > < h3 id = "rect" > Rect< / h3 > < p > < strong > Object for storing rectangular coordinates.< / strong > < / p > < pre > < code class = "python language-python hljs" > < Rect> = pg.Rect(topleft_x, topleft_y, width, height)
< in t> = < Rect> .x/y/centerx/centery
< tup. > = < Rect> .topleft/topright/bottomright/bottomleft/center
< Rect> = < Rect> .move(< tuple> )
< / code > < / pre > < / div >
< pre > < code class = "python language-python hljs" > < bool> = < Rect> .collidepoint(< tuple> ) < span class = "hljs-comment" > # Or: < Rect> .collidepoint(< int> , < int> ) < / span >
< bool> = < Rect> .colliderect(< Rect> )
index = < Rect> .collidelist(< list_of_Rect> ) < span class = "hljs-comment" > # Returns index of first coliding Rect or -1.< / span >
indices = < Rect> .collidelistall(< list_of_Rect> ) < span class = "hljs-comment" > # Returns indices of all colin ding Rects.< / span >
< pre > < code class = "python language-python hljs" > < bool> = < Rect> .collidepoint(< tuple> ) < span class = "hljs-comment" > # Tests if a point is inside a rectangle. < / span >
< bool> = < Rect> .colliderect(< Rect> ) < span class = "hljs-comment" > # Tests if two rectangles overlap.< / span >
< int> = < Rect> .collidelist(< list_of_Rect> ) < span class = "hljs-comment" > # Returns index of first col liding Rect or -1.< / span >
< list> = < Rect> .collidelistall(< list_of_Rect> ) < span class = "hljs-comment" > # Returns indices of all coll iding Rects.< / span >
< / code > < / pre >
< div > < h3 id = "surface" > Surface< / h3 > < p > < strong > Object for representing images.< / strong > < / p > < pre > < code class = "python language-python hljs" > < Surface > = pg.display.set_mode((width, height)) < span class = "hljs-comment" > # Retr uns the display surface.< / span >
< Surface > = pg.Surface((width, height)) < span class = "hljs-comment" > # Creates a new surface.< / span >
< Surface > = pg.image.load(< span class = "hljs-string" > '< path> '< / span > ).convert() < span class = "hljs-comment" > # Loads an image.< / span >
< div > < h3 id = "surface" > Surface< / h3 > < p > < strong > Object for representing images.< / strong > < / p > < pre > < code class = "python language-python hljs" > < Surf> = pg.display.set_mode((width, height)) < span class = "hljs-comment" > # Retur ns the display surface.< / span >
< Surf> = pg.Surface((width, height)) < span class = "hljs-comment" > # Creates a new surface.< / span >
< Surf> = pg.image.load(< span class = "hljs-string" > '< path> '< / span > ).convert() < span class = "hljs-comment" > # Loads an image.< / span >
< / code > < / pre > < / div >
< pre > < code class = "python language-python hljs" > < Surface> .set_at((x, y), < color> ) < span class = "hljs-comment" > # Updates pixel.< / span >
< Surface> .fill(< color> ) < span class = "hljs-comment" > # Fills the whole surface.< / span >
< Surface > .blit(< Surface> , (x, y)) < span class = "hljs-comment" > # Draws passed surface to the surface.< / span >
< Surface > = < Surface > .subsurface(< Rect> ) < span class = "hljs-comment" > # Returns subsurface.< / span >
< pre > < code class = "python language-python hljs" > < Surf> .set_at((x, y), color) < span class = "hljs-comment" > # Updates pixel.< / span >
< Surf> .fill(color) < span class = "hljs-comment" > # Fills the whole surface.< / span >
< Surf> .blit(< Surface> , (x, y)) < span class = "hljs-comment" > # Draws passed surface to the surface.< / span >
< Surf> = < Surf> .subsurface(< Rect> ) < span class = "hljs-comment" > # Returns subsurface.< / span >
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < Surface > = pg.transform.flip(< Surface > , xbool, ybool)
< Surface > = pg.transform.rotate(< Surface> , angle )
< Surface > = pg.transform.scale(< Surface > , (width, height))
< pre > < code class = "python language-python hljs" > < Surf> = pg.transform.flip(< Surf> , xbool, ybool)
< Surf> = pg.transform.rotate(< Surf> , degrees )
< Surf> = pg.transform.scale(< Surf> , (width, height))
< / code > < / pre >
< pre > < code class = "python language-python hljs" > pg.draw.line(< Surface > , color, start_pos, end_pos, width)
pg.draw.arc(< Surface > , color, < Rect> , start_angle, stop_angle )
pg.draw.rect(< Surface > , color, < Rect> )
pg.draw.polygon(< Surface > , color, points)
pg.draw.ellipse(< Surface > , color, < Rect> )
< pre > < code class = "python language-python hljs" > pg.draw.line(< Surf> , color, start_pos, end_pos, width)
pg.draw.arc(< Surf> , color, < Rect> , start_radians, stop_radians )
pg.draw.rect(< Surf> , color, < Rect> )
pg.draw.polygon(< Surf> , color, points)
pg.draw.ellipse(< Surf> , color, < Rect> )
< / code > < / pre >
< div > < h3 id = "font" > Font< / h3 > < pre > < code class = "python language-python hljs" > < Font> = pg.font.SysFont(name, size, bold=< span class = "hljs-keyword" > False< / span > , italic=< span class = "hljs-keyword" > False< / span > )
< Font> = pg.font.Font(< span class = "hljs-string" > '< path> '< / span > , size)
< Surface > = < Font> .render(text, antialias, color, background=< span class = "hljs-keyword" > None< / span > )
< div > < h3 id = "font" > Font< / h3 > < pre > < code class = "python language-python hljs" > < Font> = pg.font.SysFont(name, size, bold=< span class = "hljs-keyword" > False< / span > , italic=< span class = "hljs-keyword" > False< / span > )
< Font> = pg.font.Font(< span class = "hljs-string" > '< path> '< / span > , size)
< Surf> = < Font> .render(text, antialias, color, background=< span class = "hljs-keyword" > None< / span > )
< / code > < / pre > < / div >
< div > < h3 id = "sound" > Sound< / h3 > < pre > < code class = "python hljs" > < Sound> = pg.mixer.Sound(< span class = "hljs-string" > '< path> '< / span > ) < span class = "hljs-comment" > # Loads a sound file.< / span >
< Sound> .play() < span class = "hljs-comment" > # Starts playing sound.< / span >
< div > < h3 id = "sound" > Sound< / h3 > < pre > < code class = "python hljs" > < Sound> = pg.mixer.Sound(< span class = "hljs-string" > '< path> '< / span > ) < span class = "hljs-comment" > # Loads a sound file.< / span >
< Sound> .play() < span class = "hljs-comment" > # Starts playing the sound.< / span >
< / code > < / pre > < / div >
< div > < h3 id = "basicmariobrothersexample" > Basic Mario Brothers Example< / h3 > < pre > < code class = "python language-python hljs" > < span class = "hljs-keyword" > import< / span > collections, dataclasses, enum, io, math, pygame, urllib.request, itertools < span class = "hljs-keyword" > as< / span > it
< span class = "hljs-keyword" > from< / span > random < span class = "hljs-keyword" > import< / span > randint
P = collections.namedtuple(< span class = "hljs-string" > 'P'< / span > , < span class = "hljs-string" > 'x y'< / span > ) < span class = "hljs-comment" > # Position< / span >
D = enum.Enum(< span class = "hljs-string" > 'D'< / span > , < span class = "hljs-string" > 'n e s w'< / span > ) < span class = "hljs-comment" > # Direction< / span >
SIZE, MAX_SPEED = < span class = "hljs-number" > 50< / span > , P(< span class = "hljs-number" > 5< / span > , < span class = "hljs-number" > 10< / span > ) < span class = "hljs-comment" > # Screen size, Speed limit< / span >
P = collections.namedtuple(< span class = "hljs-string" > 'P'< / span > , < span class = "hljs-string" > 'x y'< / span > ) < span class = "hljs-comment" > # Position< / span >
D = enum.Enum(< span class = "hljs-string" > 'D'< / span > , < span class = "hljs-string" > 'n e s w'< / span > ) < span class = "hljs-comment" > # Direction< / span >
SIZE, MAX_SPEED = < span class = "hljs-number" > 50< / span > , P(< span class = "hljs-number" > 5< / span > , < span class = "hljs-number" > 10< / span > ) < span class = "hljs-comment" > # Screen size, Speed limit< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > main< / span > < span class = "hljs-params" > ()< / span > :< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > get_screen< / span > < span class = "hljs-params" > ()< / span > :< / span >