Skip to content

Instantly share code, notes, and snippets.

View illume's full-sized avatar

René Dudfield illume

View GitHub Profile
@illume
illume / reinitbug.py
Created February 14, 2021 14:29
press g key, see key repeat is slow. Press f key, then pressing g key means the key repeat is fast (broken).
"""
Manual test for pygame #2100
Press F to quit and restart the screen
"""
import pygame
#pygame.init() # <- problem doesn't happen at all with this
@illume
illume / decision_tree.py
Created June 3, 2020 14:09
Decision trees in python using recursion and eval.
# Decision trees in python using recursion and eval.
TREE_SIMPLE = {
"expression": 'state["x"] > 1',
True: {"result": "b"},
False: {"result": "a"},
}
def decide(state, node):
return (
# Install specified Python version.
# Install only if:
# Our current matrix entry uses this Python version AND
# Python version is not already available.
# from https://raw.githubusercontent.com/matthew-brett/multibuild/11a389d78892cf90addac8f69433d5e22bfa422a/install_python.ps1
$py_exe = "${env:PYTHONPATH}\Python.exe"
if ( [System.IO.File]::Exists($py_exe) ) {
echo "$py_exe exists"
exit 0
@illume
illume / midimusic.py
Created October 14, 2019 16:20
How to play midi music with pygame.mixer.music.
# midimusic.py
# curl -O https://upload.wikimedia.org/wikipedia/commons/5/55/MIDI_sample.mid
import time, sys, pygame
pygame.mixer.init()
pygame.mixer.music.load('MIDI_sample.mid')
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
print('Still playing :)')
--- src/video/cocoa/SDL_cocoavideo.h.orig Sat Jul 27 20:21:42 2019 +0200
+++ src/video/cocoa/SDL_cocoavideo.h Tue Jul 30 10:04:46 2019 -0700
@@ -113,9 +113,8 @@
/* Utility functions */
extern NSImage * Cocoa_CreateImage(SDL_Surface * surface);
-/* Fix build with the 10.10 SDK */
-#if MAC_OS_X_VERSION_MAX_ALLOWED < 101100
-#define NSEventSubtypeTouch NSTouchEventSubtype
+/* Fix build with the 10.11 SDK */
import pygame
from pygame.locals import *
pygame.init()
RES=(160, 120)
FPS=30
clock = pygame.time.Clock()
@illume
illume / play_audio_layer.py
Last active July 14, 2019 11:37
headless pygame (without a window) playing two sounds at different times.
""" headless pygame (without a window) playing two sounds one after the other.
"""
import os, sys, time
import pygame
import pygame.examples
# a pretend video.
os.environ["SDL_VIDEODRIVER"] = "dummy"
@illume
illume / tornado_thread.py
Last active June 11, 2019 08:37
Tornado run task in a thread pool.
""" Run a task in a background thread.
python3 -m pip install tornado --user
python3 tornado_thread.py
curl http://localhost:8888/2
See `run_on_executor` documentation:
https://www.tornadoweb.org/en/stable/concurrent.html#tornado.concurrent.run_on_executor
See for another approach:
@illume
illume / circle_draw.py
Last active June 21, 2019 16:02
hexagonal circle drawing
#!/usr/bin/env python
import pygame
import math
def draw_aacircle(surface, color, pos, radius, width=0):
r, g, b = color
position_x, position_y = pos
alpha_max = 255
@illume
illume / metronome.py
Last active November 14, 2018 17:14
A metronome in pygame.
"""
Show a light for every beat.
Show the BPM as text.
Use 4/4 timing. Four beats to a bar.
Press space until the BPM gets to what you want.
"""
import time
import os
import pygame as pg