|
2505 | 2505 | <pre><code class="python language-python hljs"><bool> = <Rect>.collidepoint((x, y)) <span class="hljs-comment"># Tests if a point is inside a rectangle.</span>
|
2506 | 2506 | <bool> = <Rect>.colliderect(<Rect>) <span class="hljs-comment"># Tests if two rectangles overlap.</span>
|
2507 | 2507 | <int> = <Rect>.collidelist(<list_of_Rect>) <span class="hljs-comment"># Returns index of first colliding Rect or -1.</span>
|
2508 |
| -<list> = <Rect>.collidelistall(<list_of_Rect>) <span class="hljs-comment"># Returns indices of all colliding Rects.</span> |
| 2508 | +<list> = <Rect>.collidelistall(<list_of_Rect>) <span class="hljs-comment"># Returns indexes of all colliding Rects.</span> |
2509 | 2509 | </code></pre>
|
2510 | 2510 | <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"># Returns the display surface.</span>
|
2511 | 2511 | <Surf> = pg.Surface((width, height)) <span class="hljs-comment"># Creates a new surface.</span>
|
|
2576 | 2576 | <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">update_speed</span><span class="hljs-params">(mario, tiles, pressed)</span>:</span>
|
2577 | 2577 | x, y = mario.spd
|
2578 | 2578 | x += <span class="hljs-number">2</span> * ((D.e <span class="hljs-keyword">in</span> pressed) - (D.w <span class="hljs-keyword">in</span> pressed))
|
2579 |
| - x -= x / abs(x) <span class="hljs-keyword">if</span> x <span class="hljs-keyword">else</span> <span class="hljs-number">0</span> |
| 2579 | + x -= x // abs(x) <span class="hljs-keyword">if</span> x <span class="hljs-keyword">else</span> <span class="hljs-number">0</span> |
2580 | 2580 | y += <span class="hljs-number">1</span> <span class="hljs-keyword">if</span> D.s <span class="hljs-keyword">not</span> <span class="hljs-keyword">in</span> get_boundaries(mario.rect, tiles) <span class="hljs-keyword">else</span> (<span class="hljs-number">-10</span> <span class="hljs-keyword">if</span> D.n <span class="hljs-keyword">in</span> pressed <span class="hljs-keyword">else</span> <span class="hljs-number">0</span>)
|
2581 | 2581 | mario.spd = P(*[max(-limit, min(limit, s)) <span class="hljs-keyword">for</span> limit, s <span class="hljs-keyword">in</span> zip(MAX_SPEED, P(x, y))])
|
2582 | 2582 |
|
2583 | 2583 | <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">update_position</span><span class="hljs-params">(mario, tiles)</span>:</span>
|
2584 |
| - old_p, delta = mario.rect.topleft, P(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>) |
| 2584 | + new_p = mario.rect.topleft |
2585 | 2585 | larger_speed = max(abs(s) <span class="hljs-keyword">for</span> s <span class="hljs-keyword">in</span> mario.spd)
|
2586 |
| - <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> range(int(larger_speed)): |
| 2586 | + <span class="hljs-keyword">for</span> _ <span class="hljs-keyword">in</span> range(larger_speed): |
2587 | 2587 | mario.spd = stop_on_collision(mario.spd, get_boundaries(mario.rect, tiles))
|
2588 |
| - delta = P(*[a + s/larger_speed <span class="hljs-keyword">for</span> a, s <span class="hljs-keyword">in</span> zip(delta, mario.spd)]) |
2589 |
| - mario.rect.topleft = [sum(pair) <span class="hljs-keyword">for</span> pair <span class="hljs-keyword">in</span> zip(old_p, delta)] |
| 2588 | + new_p = P(*[a + s/larger_speed <span class="hljs-keyword">for</span> a, s <span class="hljs-keyword">in</span> zip(new_p, mario.spd)]) |
| 2589 | + mario.rect.topleft = new_p |
2590 | 2590 |
|
2591 | 2591 | <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">get_boundaries</span><span class="hljs-params">(rect, tiles)</span>:</span>
|
2592 | 2592 | deltas = {D.n: P(<span class="hljs-number">0</span>, <span class="hljs-number">-1</span>), D.e: P(<span class="hljs-number">1</span>, <span class="hljs-number">0</span>), D.s: P(<span class="hljs-number">0</span>, <span class="hljs-number">1</span>), D.w: P(<span class="hljs-number">-1</span>, <span class="hljs-number">0</span>)}
|
|
0 commit comments