This web tutorial will show you how to make your Star Wars carnival.
The author of this article - Koldo Santisteban shows us how to deal with the Arduino device and Pygame python module.
windows,linux, tutorials, tutorial, pygame, ,development,programming,source code,code,example,examples,All with pygame python module. The pygame-catalin is a blog created by Catalin George Festila.
sâmbătă, 26 decembrie 2015
duminică, 21 decembrie 2014
PyGame : Using sound, mixer, volume, channels, fade-in and out effect.
PyGame module comes with sound feature and this allows users to test some effects.
The next source code will make a window and also will play a song.
After, You can test all effects with python version 3.4.1.
Just see the keys from source code and test it. The song is an ogg file.
I used this sample from a recording of the album Through the Devil Softly by the artist Hope Sandoval and The Warm Inventions from here.
Let's see the python script:
The next source code will make a window and also will play a song.
After, You can test all effects with python version 3.4.1.
Just see the keys from source code and test it. The song is an ogg file.
I used this sample from a recording of the album Through the Devil Softly by the artist Hope Sandoval and The Warm Inventions from here.
Let's see the python script:
import pygame, sys
blue = (55, 75, 155)
pygame.init()
pygame.display.set_caption('pygame - using sound effect')
size = [460, 100]
screen = pygame.display.set_mode(size)
clock = pygame.time.Clock()
# load sound file
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
pygame.mixer.music.set_volume(0.5)
sound = pygame.mixer.Sound("bird.ogg")
snd_array = pygame.sndarray.array(sound)
snd_out = pygame.sndarray.make_sound(snd_array)
snd_out.play()
mychannel=pygame.mixer.find_channel()
while pygame.mixer.find_channel is None:
print (pygame.mixer.find_channel)
allchannels=pygame.mixer.get_num_channels()
print ('all channels - ',allchannels)
print ('duration -',sound.get_length(),' seconds')
print ('press 1 - play sound')
print ('press 2 - play sound in a loop')
print ('press 3 - play sound with 9 seconds fade-in effect')
print ('press 4 - play sound just for 9 seconds')
print ('press 5 - play sound 3 more times')
print ('press 9 - stop playing with fadeout effect set 9 ')
print ('press 0 - stop playing instantly')
print ('press up arrow key - up volume')
print ('press down arrow key - down volume')
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
sound.play()
if event.key == pygame.K_2:
sound.play(-1)
if event.key == pygame.K_3:
sound.play(-1, fade_ms=9000)
if event.key == pygame.K_4:
sound.play(-1, 9000)
if event.key == pygame.K_5:
sound.play(3)
if event.key == pygame.K_9:
sound.fadeout(9000)
if event.key == pygame.K_0:
sound.stop()
if event.key == pygame.K_UP:
sound.set_volume(sound.get_volume()+0.1)
print(sound.get_volume())
if event.key == pygame.K_DOWN:
sound.set_volume(sound.get_volume()-0.1)
print(sound.get_volume())
screen.fill(blue)
pygame.display.update()
clock.tick(10)
sâmbătă, 7 septembrie 2013
PyGame : First interface - part 6.
I will show you how to make a menu with buttons using pygame module.
The example is simple but you can update with new features.
I will make some buttons: Start game, Options and Exit game.
The pygame come with rect function to draw rectangles.
I start with one python class named my_button.
Like any graphic interface is needed to make visual elements and link with actions.
For each button, I draw one rectangle with text and functions to check mouse.
The functions of my_button are:
label - will add some text;
color - change color when the button is hovering:
draw - will deal with drawing the button, color, and mouse...;
check_hover - return boolean value based on mous eover my_button;
The example is simple but you can update with new features.
I will make some buttons: Start game, Options and Exit game.
The pygame come with rect function to draw rectangles.
I start with one python class named my_button.
Like any graphic interface is needed to make visual elements and link with actions.
For each button, I draw one rectangle with text and functions to check mouse.
The functions of my_button are:
label - will add some text;
color - change color when the button is hovering:
draw - will deal with drawing the button, color, and mouse...;
check_hover - return boolean value based on mous eover my_button;
import pygame
pygame.init()
class my_button:
def __init__(self, text):
self.text = text
self.is_hover = False
self.default_color = (100,100,100)
self.hover_color = (0,255,25)
self.font_color = (0,0,255)
self.obj = None
def label(self):
font = pygame.font.Font(None, 22)
return font.render(self.text, 1, self.font_color)
def color(self):
if self.is_hover:
return self.hover_color
else:
return self.default_color
def draw(self, screen, mouse, rect_coord, label_coord):
self.obj = pygame.draw.rect(screen, self.color(), rect_coord)
screen.blit(self.label(), label_coord)
self.check_hover(mouse)
def check_hover(self, mouse):
if self.obj.collidepoint(mouse):
self.is_hover = True
else:
self.is_hover = False
if __name__ == '__main__':
start = my_button('Start game')
option = my_button('Option')
exit = my_button('Exit game')
screen = pygame.display.set_mode((400,350))
clock = pygame.time.Clock()
run = True
while run:
screen.fill((0,0,0))
mouse = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.MOUSEBUTTONDOWN:
if my_button_.obj.collidepoint(mouse):
print('my_button start clicked')
elif my_button_2.obj.collidepoint(mouse):
print('my_button option clicked')
elif my_button_3.obj.collidepoint(mouse):
print('my_button exit clicked')
start.draw(screen, mouse, (100,100,120,22), (125,103))
option.draw(screen, mouse, (100,130,120,22), (125,133))
exit.draw(screen, mouse, (100,160,120,22), (125,163))
pygame.display.update()
clock.tick(50)
... and this is the result of the pygame script.luni, 2 septembrie 2013
PyGame : First interface - part 5.
Today I worked with pygame and OpenGL python modules.
I want to make a simple script to test and load pygame , OpenGL modules.
This is the script and give me also in vars some OpenGL features.
If modules and features can be loaded then return True or False in some vars.
I want to make a simple script to test and load pygame , OpenGL modules.
This is the script and give me also in vars some OpenGL features.
If modules and features can be loaded then return True or False in some vars.
import sys
try:
import OpenGL
from OpenGL.GL import *
bOpenGL=True
except:
bOpenGL=False
try:
from OpenGL.GLU import *
bGLU=True
except:
bGLU=False
try:
from OpenGL.GLUT import *
bGLUT=True
except:
bGLUT=False
try:
from OpenGL.GL.EXT import *
bEXT=True
except:
bEXT=False
try:
from OpenGL.GL.ARB.shader_objects import *
bshader_objects=True
except:
bshader_objects=False
try:
from OpenGL.GL.ARB.vertex_shader import *
bvertex_shader=True
except:
bvertex_shader=False
try:
from OpenGL.GL.ARB.fragment_shader import *
bfragment_shader=True
except:
bfragment_shader=False
try:
from OpenGL.GL.ARB.multitexture import *
bmultitexture=True
except:
bmultitexture=False
if sys.version_info.major < 3:
print "Python vers=",sys.version_info
print "bOpenGL=", bOpenGL
print "OpenGL vers=",OpenGL.__version__
print "bGLU=", bGLU
print "bGLUT=", bGLUT
print "bEXT=", bEXT
print "bshader_objects=", bshader_objects
print "bvertex_shader=", bvertex_shader
print "bfragment_shader=", bfragment_shader
print "bmultitexture=", bmultitexture
else:
print ("Python vers=",sys.version_info)
print ("bOpenGL=", bOpenGL)
print ("OpenGL vers=",OpenGL.__version__)
print ("bGLU=", bGLU)
print ("bGLUT=", bGLUT)
print ("bEXT=", bEXT)
print ("bshader_objects=", bshader_objects)
print ("bvertex_shader=", bvertex_shader)
print ("bfragment_shader=", bfragment_shader)
print ("bmultitexture=", bmultitexture)
The output result is this :$ python test.py
Python vers= sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
bOpenGL= True
OpenGL vers= 3.0.1
bGLU= True
bGLUT= True
bEXT= True
bshader_objects= True
bvertex_shader= True
bfragment_shader= True
bmultitexture= True
joi, 15 august 2013
PyGame : Working with Pygame Subset for Android.
This is an old tutorial I make for PGS4A - Pygame Subset for Android
I tried to rebuild this python module but it does not exist.
For me, it is the end of this series of tutorials.
Read this tutorial if you have PGS4A.
I use the python pygame script from here.
I don't add anything to the script and it's working very well on my tablet.
Many users tell us to use something like that:
First, after you download and unarchive the PGS4A - Pygame Subset for Android go to in folder and will see these files:
How I make the android application? First I configure the application. You need to give all answers when use configures args...
If you use: install then will expect the emulator or device to install it. I don't use install, just release.
I tried to rebuild this python module but it does not exist.
For me, it is the end of this series of tutorials.
Read this tutorial if you have PGS4A.
I use the python pygame script from here.
I don't add anything to the script and it's working very well on my tablet.
Many users tell us to use something like that:
import android
android.init()
I don't use this just the python script from my example.First, after you download and unarchive the PGS4A - Pygame Subset for Android go to in folder and will see these files:
usertest@home:~/pgs4a-0.9.6$ ls
android.py blacklist.txt doc private src
assets buildlib libs python-install templates
bin default.properties local.properties res whitelist.txt
Now you need to test it if is working well...usertest@home:~/pgs4a-0.9.6$ ./android.py test
All systems go!
... and install the Android SDK. You will need to give all the answers is need it.usertest@home:~/pgs4a-0.9.6$ ./android.py installsdk
I'm compiling a short test program, to see if you have a working JDK
on your system.
The JDK is present and working. Good!
I'm downloading Apache Ant. This might take a while.
I'm extracting Apache Ant.
I've finished unpacking Apache Ant.
Opening http://developer.android.com/sdk/terms.html in a web browser.
Do you accept the Android SDK Terms and Conditions?
yes/no> yes
I'm downloading the Android SDK. This might take a while.
Created new window in existing browser session.
I'm extracting the Android SDK.
I've finished unpacking the Android SDK.
I'm about to download and install the required Android packages. This
might take a while.
Refresh Sources:
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
Validate XML
Parse XML
Fetched Add-ons List successfully
Refresh Sources
Fetching URL: https://dl-ssl.google.com/android/repository/repository-7.xml
Validate XML: https://dl-ssl.google.com/android/repository/repository-7.xml
....
Starting ADB server succeeded.
Done. 5 packages installed.
I'm updating the library packages.
Updated local.properties
No project name specified, using project folder name 'library'.
If you wish to change it, edit the first line of build.xml.
Added file android-sdk/extras/google/play_licensing/library/build.xml
Added file android-sdk/extras/google/play_licensing/library/proguard-project.txt
Updated local.properties
No project name specified, using project folder name 'downloader_library'.
If you wish to change it, edit the first line of build.xml.
Added file android-sdk/extras/google/play_apk_expansion/downloader_library/build.xml
Added file android-sdk/extras/google/play_apk_expansion/downloader_library/proguard-project.txt
I've finished installing the required Android packages.
I can create an application signing key for you. Signing an
application with this key allows it to be placed in the Android Market
and other app stores.
Do you want to create a key?
yes/no> yes
I will create the key in the android.keystore file.
You need to back this file up. If you lose it, you will not be able to
upgrade your application.
You also need to keep the key safe. If evil people get this file, they
could make fake versions of your application, and potentially steal
your users' data.
Will you make a backup of android.keystore, and keep it in a safe
place?
yes/no> yes
Please enter your name or the name of your organization.
> free-tutorials.org
I've finished creating android.keystore. Please back it up, and keep
it in a safe place.
It looks like you're ready to start packaging games.
After that let's see the files we have it... usertest@home:~/pgs4a-0.9.6$ ls
android.keystore bin local.properties
android.py blacklist.txt private
android-sdk buildlib python-install
android-sdk_r20-linux.tgz default.properties res
apache-ant doc src
apache-ant-1.8.4-bin.tar.gz libpeerconnection.log templates
assets libs whitelist.txt
My pygame script is located in ~/Dropbox/AndroidApp/pygame-android/test001.How I make the android application? First I configure the application. You need to give all answers when use configures args...
usertest@home:~/pgs4a-0.9.6/bin$ ./android.py configure ~/Dropbox/AndroidApp/pygame-android/test001
... next, I build it.If you use: install then will expect the emulator or device to install it. I don't use install, just release.
usertest@home:~/pgs4a-0.9.6/bin$ ./android.py build ~/Dropbox/AndroidApp/pygame-android/test001 release
After that will see in the bin folder your android pygame application.usertest@home:~/pgs4a-0.9.6/bin$ ls
AndroidManifest.xml classes.dex.d test001-1.ap_.d
AndroidManifest.xml.d jarlist.cache test001-1-release.apk
build.prop proguard.txt test001-1-release-unaligned.apk
classes res test001-1-release-unsigned.apk
classes.dex test001-1.ap_ test001-1-release-unsigned.apk.d
Let's see how is working...
Posted by
Cătălin George Feștilă
Labels:
2013,
Android,
GUI,
pygame,
pygame.display,
python,
tutorial,
tutorials
PyGame : First interface - part 4.
This is another tutorial about pygame.
The main goal of this tutorial is to make one box with some text for your application or game.
First, I import the pygame module and I set two colors: black and green:
You can also change this source of code to make editbox or other GUI elements.
The main goal of this tutorial is to make one box with some text for your application or game.
First, I import the pygame module and I set two colors: black and green:
import pygame
import pygame.font
import pygame.event
import pygame.draw
import string
from pygame.locals import *
black=(0,0,0)
green=(0,255,0)
Tne next step is to make a function to create the display box.def display_box(screen,mess):
fontobject = pygame.font.Font(None,18)
pygame.draw.rect(screen,black,((screen.get_width() / 2) - 100,
(screen.get_height() / 2) - 10,200,20), 0)
pygame.draw.rect(screen,green,((screen.get_width() / 2) - 101,
(screen.get_height() / 2) - 11,200,20), 1)
if len(mess) != 0:
screen.blit(fontobject.render(mess, 1, (25,255,25)),
((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 9))
pygame.display.flip()
Let's start the pygame window and display the box.if __name__ == '__main__':
pygame.init()
pygame.display.set_caption("Hello world")
screen = pygame.display.set_mode((320,240))
pygame.font.init()
mess = []
while 1:
display_box(screen,"Hello world text")
pygame.display.update()
pygame.time.delay(10)
for event in pygame.event.get():
if event.type in (pygame.QUIT,pygame.KEYDOWN,pygame.MOUSEBUTTONDOWN):
raise SystemExit
The result of this source of code can be seen in the next image.You can also change this source of code to make editbox or other GUI elements.
Posted by
Cătălin George Feștilă
Labels:
2013,
GUI,
pygame,
pygame.display,
python,
tutorial,
tutorials
vineri, 9 august 2013
PyGame : First interface - part 3.
Today I will show you just a few tips about pygame window.
If we want to put the window in the center of the screen we can use this:
Now if you don't need a title window, like the next image...
... then you need to use this source code :
If we want to put the window in the center of the screen we can use this:
import os
os.environ['SDL_VIDEO_CENTERED'] = '1'
Most of the pygame windows are made by :def main():
background_colour = (25,25,255)
screen = pygame.display.set_mode((320,240))
screen.fill(background_colour)
This will create this window:Now if you don't need a title window, like the next image...
... then you need to use this source code :
screen = pygame.display.set_mode((320,240),NOFRAME)
Abonați-vă la:
Postări (Atom)