|
2476 | 2476 | </code></pre></div></div>
|
2477 | 2477 |
|
2478 | 2478 |
|
2479 |
| -<div><h2 id="pygame"><a href="#pygame" name="pygame">#</a>Pygame</h2><div><h3 id="example-3">Example</h3><div><h4 id="runsasimplesupermariogame">Runs a simple Super Mario game:</h4><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 |
| 2479 | +<div><h2 id="pygame"><a href="#pygame" name="pygame">#</a>Pygame</h2><div><h3 id="basicexample-1">Basic Example</h3><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install pygame</span> |
| 2480 | +<span class="hljs-keyword">import</span> pygame <span class="hljs-keyword">as</span> pg |
| 2481 | +pg.init() |
| 2482 | +screen = pg.display.set_mode((<span class="hljs-number">500</span>, <span class="hljs-number">500</span>)) |
| 2483 | +rect = pg.Rect(<span class="hljs-number">235</span>, <span class="hljs-number">235</span>, <span class="hljs-number">30</span>, <span class="hljs-number">30</span>) |
| 2484 | +<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()): |
| 2485 | + keys = {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>)} |
| 2486 | + <span class="hljs-keyword">for</span> delta <span class="hljs-keyword">in</span> {keys.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}: |
| 2487 | + rect = rect.move(delta) <span class="hljs-keyword">if</span> delta <span class="hljs-keyword">else</span> rect |
| 2488 | + screen.fill((<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">0</span>)) |
| 2489 | + pg.draw.rect(screen, (<span class="hljs-number">255</span>, <span class="hljs-number">255</span>, <span class="hljs-number">255</span>), rect) |
| 2490 | + pg.display.flip() |
| 2491 | +</code></pre></div></div> |
| 2492 | + |
| 2493 | + |
| 2494 | +<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"># Retruns the display surface.</span> |
| 2495 | +<Surface> = pg.Surface((width, height)) <span class="hljs-comment"># Creates a new surface.</span> |
| 2496 | +<Surface> = pg.image.load(<span class="hljs-string">'<path>'</span>).convert() <span class="hljs-comment"># Loads an image.</span> |
| 2497 | +</code></pre></div> |
| 2498 | + |
| 2499 | + |
| 2500 | +<pre><code class="python language-python hljs"><Surface>.set_at((x, y), <color>) <span class="hljs-comment"># Updates pixel.</span> |
| 2501 | +<Surface>.fill(<color>) <span class="hljs-comment"># Fills the whole surface.</span> |
| 2502 | +<Surface>.blit(<Surface>, (x, y)/<Rect>) <span class="hljs-comment"># Draws passed surface to the surface.</span> |
| 2503 | +<Surface> = <Surface>.subsurface(<Rect>) <span class="hljs-comment"># Returns subsurface.</span> |
| 2504 | +</code></pre> |
| 2505 | +<pre><code class="python language-python hljs"><Surface> = pg.transform.flip(<Surface>, xbool, ybool) |
| 2506 | +<Surface> = pg.transform.rotate(<Surface>, angle) |
| 2507 | +<Surface> = pg.transform.scale(<Surface>, (width, height)) |
| 2508 | +</code></pre> |
| 2509 | +<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) <span class="hljs-comment"># x, y, w/width, h/height</span> |
| 2510 | +<int> = <Rect>.x/y/centerx/centery/bottom/left/right/top |
| 2511 | +<tuple> = <Rect>.topleft/center/topright/bottomright/bottomleft |
| 2512 | +<tuple> = <Rect>.midtop/midright/midbottom/midleft |
| 2513 | +<bool> = <Rect>.contains(<Rect>) |
| 2514 | +</code></pre></div> |
| 2515 | + |
| 2516 | + |
| 2517 | +<pre><code class="python language-python hljs"><Rect> = <Rect>.move(<tuple>/<int>, <int>) |
| 2518 | +<Rect>.move_ip(<tuple>/<int>, <int>) |
| 2519 | +<Rect> = <Rect>.inflate(<tuple>/<int>, <int>) |
| 2520 | +<Rect>.inflate_ip(<tuple>/<int>, <int>) |
| 2521 | +</code></pre> |
| 2522 | +<pre><code class="python language-python hljs"><bool> = <Rect>.collidepoint(<tuple>/<int>, <int>) |
| 2523 | +<bool> = <Rect>.colliderect(<Rect>) |
| 2524 | +index = <Rect>.collidelist(<list_of_Rect>) <span class="hljs-comment"># Returns index of first coliding Rect or -1.</span> |
| 2525 | +indices = <Rect>.collidelistall(<list_of_Rect>) <span class="hljs-comment"># Returns indices of all colinding Rects.</span> |
| 2526 | +(key, value) = <Rect>.collidedict(<dict_of_Rect>) |
| 2527 | +[(key, value), ...] = <Rect>.collidedictall(<dict_of_Rect>) |
| 2528 | +</code></pre> |
| 2529 | +<div><h3 id="draw">Draw</h3><pre><code class="python language-python hljs">pg.draw.rect(<Surface>, color, <Rect>) |
| 2530 | +pg.draw.polygon(<Surface>, color, points) |
| 2531 | +pg.draw.circle(<Surface>, color, center, radius) |
| 2532 | +pg.draw.ellipse(<Surface>, color, <Rect>) |
| 2533 | +pg.draw.arc(<Surface>, color, <Rect>, start_angle, stop_angle) |
| 2534 | +pg.draw.line(<Surface>, color, start_pos, end_pos, width) |
| 2535 | +pg.draw.lines(<Surface>, color, points) |
| 2536 | +</code></pre></div> |
| 2537 | + |
| 2538 | +<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 |
2480 | 2539 | <span class="hljs-keyword">from</span> random <span class="hljs-keyword">import</span> randint
|
2481 | 2540 |
|
2482 | 2541 | P = collections.namedtuple(<span class="hljs-string">'P'</span>, <span class="hljs-string">'x y'</span>) <span class="hljs-comment"># Position</span>
|
|
2548 | 2607 |
|
2549 | 2608 | <span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">'__main__'</span>:
|
2550 | 2609 | main()
|
2551 |
| -</code></pre></div></div></div> |
2552 |
| - |
2553 |
| - |
| 2610 | +</code></pre></div> |
2554 | 2611 |
|
2555 | 2612 | <div><h2 id="django"><a href="#django" name="django">#</a>Django</h2><pre><code class="bash language-bash hljs">$ pip3 install Django
|
2556 | 2613 | $ django-admin startproject mysite
|
|
0 commit comments