{"id":507,"date":"2020-04-20T01:47:16","date_gmt":"2020-04-20T01:47:16","guid":{"rendered":"https:\/\/orbital.comp.nus.edu.sg\/?p=507"},"modified":"2020-04-20T01:47:16","modified_gmt":"2020-04-20T01:47:16","slug":"22-jul-mission-control-10-learning-the-basics-of-game-programming-using-pygame-sr3-soc","status":"publish","type":"post","link":"https:\/\/www.comp.nus.edu.sg\/orbital\/2020\/04\/20\/22-jul-mission-control-10-learning-the-basics-of-game-programming-using-pygame-sr3-soc\/","title":{"rendered":"22 Jul Mission Control #10 \u2013 Learning the basics of game programming using PyGame @ SR3 SoC"},"content":{"rendered":"<header><strong>Posted on July 20, 2015 by orbital<\/strong><\/header>\n<div class=\"entry-content clearfix\">\n<p><img loading=\"lazy\" decoding=\"async\" class=\"thumbnail aligncenter wp-image-510 size-full\" src=\"\/orbital\/wp-content\/uploads\/sites\/9\/2020\/04\/logo_nusgdg.png\" alt=\"\" width=\"750\" height=\"250\" \/>In this Mission Control, we learn how to build a game from the ground up in Python (which you already know!), with a focus on setting up the basic infrastructure of a game. \u00a0This workshop will be interactive, so please bring your laptops, and try to get PyGame installed and working in your laptops before the session\u00a0(Setting up PyGame can be a bit of a pain, but it is a one-time thing).<\/p>\n<p><strong>Presenter:\u00a0Oh Shunhao (<a href=\"http:\/\/nusgdg.org\/\">NUS Games Development Group<\/a>)<\/strong><br \/>\n<strong>Venue: SoC SR3<\/strong><br \/>\n<strong>Time: 18:00-20:00<br \/>\nDate: 22 Jul 2015<\/strong><\/p>\n<p class=\"p1\"><span class=\"s1\">PyGame Setup instructions<\/span><\/p>\n<p class=\"p1\"><strong><span class=\"s1\">Windows:\u00a0<\/span><\/strong><span class=\"s1\">Python 2.7 \u2013 download binary here [<a href=\"http:\/\/www.pygame.org\/download.shtml\"><span class=\"s2\">http:\/\/www.pygame.org\/download.shtml<\/span><\/a>]<\/span><\/p>\n<p class=\"p4\"><span class=\"s3\">Python 3.4 \u2013 download binary here [<a href=\"http:\/\/www.lfd.uci.edu\/~gohlke\/pythonlibs\/#pygame\"><span class=\"s2\">http:\/\/www.lfd.uci.edu\/~gohlke\/pythonlibs\/#pygame<\/span><\/a>]<\/span><\/p>\n<p class=\"p1\"><strong><span class=\"s1\">Mac:\u00a0<\/span><\/strong><span class=\"s3\">Follow instructions here [<a href=\"http:\/\/pygame.org\/wiki\/macintosh\"><span class=\"s2\">http:\/\/pygame.org\/wiki\/macintosh<\/span><\/a>]<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">(From what I hear, it seems to be easier to setup for python 2.7. Also recommend installing brew first)<\/span><\/p>\n<p class=\"p1\"><strong><span class=\"s1\">Unix:\u00a0<\/span><\/strong><span class=\"s1\">Haven\u2019t really tried. Try looking here [<a href=\"http:\/\/www.pygame.org\/download.shtml\"><span class=\"s2\">http:\/\/www.pygame.org\/download.shtml<\/span><\/a>]<\/span><\/p>\n<p class=\"p1\"><span class=\"s1\">To verify that PyGame is working correctly, run this script in python:<\/span><\/p>\n<p class=\"p4\"><span class=\"s3\">[<a href=\"https:\/\/github.com\/Ohohcakester\/PyGameWorkshop\/blob\/master\/testScript\/test.py\"><span class=\"s2\">https:\/\/github.com\/Ohohcakester\/PyGameWorkshop\/blob\/master\/testScript\/test.py<\/span><\/a>]<\/span><\/p>\n<p class=\"p4\">Same as below:<\/p>\n<pre class=\"p1\"><span class=\"s1\"># If the test works, you should see a blue circle moving around the screen.\n<\/span><span class=\"s1\">import pygame\n<\/span><span class=\"s1\">pygame.init()\n<\/span><span class=\"s1\">screen = pygame.display.set_mode((480,360))\n<\/span><span class=\"s1\">x = 0\n<\/span><span class=\"s1\">y = 0\n<\/span><span class=\"s1\">while True:\n<\/span><span class=\"s1\"> \u00a0 \u00a0x = (x + 10) % 480\n<\/span><span class=\"s1\"> \u00a0 \u00a0y = (y + 10) % 360<\/span><span class=\"s1\"> \u00a0 \u00a0\n<\/span><span class=\"s1\">    pygame.event.get()\n<\/span><span class=\"s1\">    screen.fill((0,0,0))\n<\/span><span class=\"s1\"> \u00a0 \u00a0pygame.draw.circle(screen, (0, 127, 255), (x, y), 25)\n<\/span><span class=\"s1\"> \u00a0 \u00a0pygame.display.flip()\n<\/span><span class=\"s2\"> \u00a0 \u00a0pygame.time.delay(20)<\/span><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Posted on July 20, 2015 by orbital In this Mission Control, we learn how to build a game from the [&hellip;]<\/p>\n","protected":false},"author":108,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3,6,7],"tags":[],"class_list":["post-507","post","type-post","status-publish","format-standard","hentry","category-announcements","category-mission-control","category-optional"],"_links":{"self":[{"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/posts\/507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/users\/108"}],"replies":[{"embeddable":true,"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/comments?post=507"}],"version-history":[{"count":0,"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/posts\/507\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/media?parent=507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/categories?post=507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.comp.nus.edu.sg\/orbital\/wp-json\/wp\/v2\/tags?post=507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}