BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//American Young Coder - ECPv6.10.1.1//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-ORIGINAL-URL:https://www.ayclogic.com
X-WR-CALDESC:Events for American Young Coder
REFRESH-INTERVAL;VALUE=DURATION:PT1H
X-Robots-Tag:noindex
X-PUBLISHED-TTL:PT1H
BEGIN:VTIMEZONE
TZID:America/Los_Angeles
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:20220313T100000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:20221106T090000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:20230312T100000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:20231105T090000
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:-0800
TZOFFSETTO:-0700
TZNAME:PDT
DTSTART:20240310T100000
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0700
TZOFFSETTO:-0800
TZNAME:PST
DTSTART:20241103T090000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240611T180000
DTEND;TZID=America/Los_Angeles:20240611T190000
DTSTAMP:20260512T045715
CREATED:20240612T020051Z
LAST-MODIFIED:20240612T020051Z
UID:25552-1718128800-1718132400@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nAdded code to create purchase towers on top right\nAdded mouse target pointer for collisions with purchase towers\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nHomework: Since another teacher will be taking over the class next week\, please make sure your code matches the code in the main branch. That’s all for homework this week!
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian-9/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240608T140000
DTEND;TZID=America/Los_Angeles:20240608T150000
DTSTAMP:20260512T045715
CREATED:20240609T175925Z
LAST-MODIFIED:20240609T175925Z
UID:25440-1717855200-1717858800@www.ayclogic.com
SUMMARY:2 PM – Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nFinished Dereck and Merinda’s project & gave advice on what to add during next lecture (written in bottom of project proposal)\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/sat-2-pm-shoot-balloon-sebastian\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nContinue with the homework we wrote together in our project proposal document.
URL:https://www.ayclogic.com/event/2-pm-python-game-development-sebastian-15/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240528T180000
DTEND;TZID=America/Los_Angeles:20240528T190000
DTSTAMP:20260512T045715
CREATED:20240529T020004Z
LAST-MODIFIED:20240529T020117Z
UID:25246-1716919200-1716922800@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nRefined sprite movement using Julian’s improvements\nAdded waves for the game\nAdded health counter and images above enemy\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nHomework: Add rectangle bounds for enemies\n\nAdd rectangle to sprite as attribute called self.rect\nUpdate rectangle x/y to be sprite’s x/y\nKill sprite when out of bounds (make use of is_out_of_bounds method)
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian-7/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240514T180000
DTEND;TZID=America/Los_Angeles:20240514T190000
DTSTAMP:20260512T045715
CREATED:20240515T020723Z
LAST-MODIFIED:20240515T020723Z
UID:25113-1715709600-1715713200@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nContinued creating the enemy class\nReviewed dictionaries to shorten the amount of code we need\nReviewed static methods (static just means you don’t need to make an object to call the method)\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nPlease be ready to answer the homework question in class next week.\nHomework: The homework will only be one question\, so I want you to spend 5-10 minutes trying to find the answer before you give up. It’s ok if you come to class without knowing the answer\, but I want you to try and really think about \nQuestion: How many times is update called for every class that has it?\nHints:\n\nThe answer is an integer\, a whole number like 1/2/3/etc.\nThe answer is stored in a variable that we created.\nAnother way of thinking about this is how exactly pygame determines how many images are drawn\, which we have to tell it somehow in main.py
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian-5/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240507T180000
DTEND;TZID=America/Los_Angeles:20240507T190000
DTSTAMP:20260512T045715
CREATED:20240508T015938Z
LAST-MODIFIED:20240508T015938Z
UID:25037-1715104800-1715108400@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nContinued adding images for “game in session” before enemies are drawn\nStarted Tower class and began understanding how the class will work\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nHomework: Add code to load the other 2 tower images in tower.py\, in the Tower class constructor.\n\nIf tower type is “magic”\n\nLoad from: assets/images/magic-tower-game-assets/PNG/3.png\nAttack damage: 7\n\n\nIf tower type is “spear”\n\nLoad from: assets/images/support-tower-game-assets/PNG/8.png\nAttack damage: 12
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian-3/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240430T180000
DTEND;TZID=America/Los_Angeles:20240430T190000
DTSTAMP:20260512T045716
CREATED:20240501T020429Z
LAST-MODIFIED:20240501T020429Z
UID:24952-1714500000-1714503600@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nFinished creating the title screen and credits pages\, reviewing all the old fundamental pygame concepts\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nHomework: Create boilerplate code for bullet\, enemy and tower files.\nMake class for each file (upper case first letter)\n\n\nParameters: x\, y\, size\, screen\nFor each parameter\, store in an attribute\nCreate update for each class\n\n\nIn main.py\, create groups for each class
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian-2/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20240423T180000
DTEND;TZID=America/Los_Angeles:20240423T190000
DTSTAMP:20260512T045716
CREATED:20240425T150319Z
LAST-MODIFIED:20240425T150319Z
UID:24875-1713895200-1713898800@www.ayclogic.com
SUMMARY:6 PM – Advanced Python Game Development – Sebastian
DESCRIPTION:Today We Did \n\nBegan working on tower of defense project\nCreated title screen\, logo\, and play buttons\nYou can always find the code we wrote in class in my Gitlab repository here:\nhttps://gitlab.com/gsugiart/tue-6-pm-sebastian-apr-2024\nAYC Logic’s observed holidays: https://www.ayclogic.com/observed-holidays/\nIn case you need anything\, feel free to email me at sebastian@ayclogic.com\n\nHomework\n\nNo homework for the first week.
URL:https://www.ayclogic.com/event/6-pm-advanced-python-game-development-sebastian/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230727T180000
DTEND;TZID=America/Los_Angeles:20230727T190000
DTSTAMP:20260512T045716
CREATED:20230728T020423Z
LAST-MODIFIED:20230728T033847Z
UID:20842-1690480800-1690484400@www.ayclogic.com
SUMMARY:6 PM - Adv Python Game Dev - Gamas
DESCRIPTION:Today We Did\n\nWe added “region <region>” information on the screen for debugging purposes.\nWe added EnemyTwo class which inherits from Enemy class. This way we can override the self.images used for 2nd enemy type.\n\nHomework\n\nInside EnemyTwo.__init__(…) method\, you need to load images from “assets/images/monster-character-2d-sprites/PNG/2/2_enemies_1_RUN_00{id}.png” .\nAfter you do this\, inside main.py use EnemyTwo instead of Enemy class this way\, EnemyTwo images will be shown\n\n\n\n\nInside Enemy class\, add one more attribute self.health = 100\nInside Enemy class\, load the heart image (“assets/images/heart.png”)\nand display it next to the monster image. This is very similar to again Shoot Balloon “bad balloon” text but instead of text\, you want to blit the heart image.\nInside Enemy class\, blit the self.health next to heart image.\nLook at below screenshot for reference
URL:https://www.ayclogic.com/event/6-pm-adv-python-game-dev-gamas-2/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230720T180000
DTEND;TZID=America/Los_Angeles:20230720T190000
DTSTAMP:20260512T045716
CREATED:20230722T023736Z
LAST-MODIFIED:20230722T023736Z
UID:20758-1689876000-1689879600@www.ayclogic.com
SUMMARY:6 PM - Adv Python Game Dev - Gamas
DESCRIPTION:Today We Did\n\nWe continued on TOD project. We specifically worked on the 3 steps to enable the enemy movements\n\nWhat direction should the enemy move according to its region.\nMove the enemy according to the direction set.\nSwitch the region according to the enemy coordinate.\n\n\n\nHomework\n\nNext 2 classes would be Thursday at 6 PM instead of SAT – 3 PM because I will be unavailable on SAT – 3 PM. So July 27 and Aug 2\, will be Thursday classes.\nContinue on enemy.py to make the enemy move from region 1 all the way to region 11a or 11b.\nWhen in region 10\, you need to randomly decide whether to move to 11a or 11b. Look at Shoot Balloon project to see example how to randomly make bad balloon.
URL:https://www.ayclogic.com/event/6-pm-adv-python-game-dev-gamas/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230715T150000
DTEND;TZID=America/Los_Angeles:20230715T160000
DTSTAMP:20260512T045716
CREATED:20230715T231428Z
LAST-MODIFIED:20230720T063217Z
UID:20613-1689433200-1689436800@www.ayclogic.com
SUMMARY:SAT - 3 PM - Adv Python Game Dev - Gamas
DESCRIPTION:Today We Did\n\nWe learned on how to load images using for in range for loop.\nWe created config\,py\nWe learned about the enemy movement regions.\n\nHomework\n\nOur next class is going to be Thursday July 20 at 6 PM. No class on July 22nd.\nfind the coordinates of all turning points for all regions. Below is the image of all the regions.
URL:https://www.ayclogic.com/event/sat-3-pm-adv-python-game-dev-gamas/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20230708T150000
DTEND;TZID=America/Los_Angeles:20230708T160000
DTSTAMP:20260512T045716
CREATED:20230708T230356Z
LAST-MODIFIED:20230708T233338Z
UID:20496-1688828400-1688832000@www.ayclogic.com
SUMMARY:3 PM - Adv Python Game Dev - Gamas
DESCRIPTION:Today We Did\n\nWe setup SAT-3PM-TOD project.\nWe created gitlab project and clone them and checkout individual branches.\nAdded background and Enemy class.\n\nHomework\n\nInside Enemy class\, resize the image according to the size parameter. figure out the size your self so it will fit the road in the background image. When you resize\, make sure the height is bigger than the width.\nDisplay the Enemy on the screen on the bottom side of the road.\nAnimate the enemy sprite so it will load from 2_enemies_1_RUN_000.png to 2_enemies_1_RUN_009.png. Use for loop in range to produce the right filename suffix and load all the images.
URL:https://www.ayclogic.com/event/3-pm-adv-python-game-dev-gamas/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220618T130000
DTEND;TZID=America/Los_Angeles:20220618T140000
DTSTAMP:20260512T045716
CREATED:20220618T210233Z
LAST-MODIFIED:20220618T210300Z
UID:13603-1655557200-1655560800@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the cancel purchase button and music.\nWe fixed the bug where clicking on the towers for purchase deducted more coins\nWe added logic so bullets hitting the enemy didn’t kill them immediately but ony when their health goes to zero.\n\nHomework: \n\nAdd a game over page\, it should look like this:\n\nWhen the health attribute goes to zero\, switch the game “self.mode” attribute to GAME_LOST\, and display the game over page.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-63/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220611T130000
DTEND;TZID=America/Los_Angeles:20220611T140000
DTSTAMP:20260512T045716
CREATED:20220611T210310Z
LAST-MODIFIED:20220611T210310Z
UID:13474-1654952400-1654956000@www.ayclogic.com
SUMMARY:SAT - 1 PM - Advanced Python Game Development - Chet
DESCRIPTION:Today We Do\n\nWe reviewed the homework.\nWe enabled multiple waves of enemies.\nWe make the player’s health decrease when enemies is off the screen and still alive.\nWe hide hotspot when there is no floating towers.\n\nHomework\n\n\n\nAdd the “assets/images/cancelPurchaseButton.png” appear on the screen on the left side of the Towers for purchase when there is a floating tower.\nWhen you click on the “Cancel Purchase” button\, make the floating tower disappear and return the money to self.coins. self.floating_tower_group.sprites()[0].kill()\nAdd background song for your game. Go to opengameart.org and find a good song for your game. Find the .wav file and add it to your assets folder and play it when the game is in session.
URL:https://www.ayclogic.com/event/sat-1-pm-advanced-python-game-development-chet/
CATEGORIES:Advanced Python Game Development,Python Class
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220604T130000
DTEND;TZID=America/Los_Angeles:20220604T140000
DTSTAMP:20260512T045716
CREATED:20220604T211627Z
LAST-MODIFIED:20220604T211647Z
UID:13376-1654347600-1654351200@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add custom shooting tower images and collision detection logic between bullets and enemies\nWe added logic so different towers shoot their corresponding bullet images.\nWe added a coins indicator showing the number of coins left.\nWe added an indicator for each tower for purchase to show its cost\nWe added logic so as each tower is purchased it detects the number of coins available\n\nHomework: \n\nAdd logic so that each enemy that gets killed increases your “self.coins” attribute by the “self.coin_drop” in each enemy.  Define a new method called “self.handle_bullet_enemy_collision” and make sure it gets called from the “pygame.sprite.groupcollide” function to increase your number of coins.\nAdd a health indicator that shows the amount of health YOU have before losing the game.  This should be similar to the coins indicator\, you can call it “draw_health”.\nAdd a health indicator to each enemy that shows the amount of health left for each enemy given by the “self.health” attribute in each enemy.  This should follow the enemy along similar to how the price indicator follows the floating tower for purchase as you move it:
URL:https://www.ayclogic.com/event/1-pm-python-game-development-62/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220521T130000
DTEND;TZID=America/Los_Angeles:20220521T140000
DTSTAMP:20260512T045716
CREATED:20220521T210321Z
LAST-MODIFIED:20220521T210700Z
UID:13150-1653138000-1653141600@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to create the bullet sprite.\nWe added logic so the shooting tower could shoot bullets.\nWe added different tower for purchases.\n\nHomework: \n\nAdd collision detection between the bullet and the enemies.  Keep it simple so when there’s a collision the enemy and bullet gets destroyed.\nUpdate ShootingTower so that we show the same tower image as whatever the floating tower for purchase was showing before placing it on the tower hotspot.\n\nWe will have no class on Saturday May 28.  See you again on Jun 4th!
URL:https://www.ayclogic.com/event/1-pm-python-game-development-61/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220514T130000
DTEND;TZID=America/Los_Angeles:20220514T140000
DTSTAMP:20260512T045716
CREATED:20220514T210253Z
LAST-MODIFIED:20220514T210253Z
UID:13058-1652533200-1652536800@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add a type to the enemy.\nWe added the tower hotspot sprite.\nWe added the ShootingTower sprite.\nWe went over how to create the shooting tower when the floating tower collides with the target.\n\nHomework: \n\nReview the “bullet.py” file in tank-game.\nCreate a new Sprite called “Bullet” that takes x\, y\, size\, direction\, screen as parameters. The direction is the angle in degrees similar to what we used for “Bullet” sprite in the tank game project.\nCreate a bullet_group attribute in main.py\, and test you can add some bullets to it and they appear on the landing page screen.  Test you can create a custom bullet anywhere on the screen.  Play around with the degrees parameter to confirm bullets get rotated and move in the direction specified.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-60/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220430T130000
DTEND;TZID=America/Los_Angeles:20220430T140000
DTSTAMP:20260512T045716
CREATED:20220430T210839Z
LAST-MODIFIED:20220430T210905Z
UID:12779-1651323600-1651327200@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework and added the landing page and added the target pointer sprite\nWe added waves and a way to keep track of the current wave.\n\nHomework: \n\nUpdate “create_enemy” to add a timer.  You can define a ENEMY_CREATION_DELAY of 40 frames and a new attribute enemy_creation_timer that keeps track of when it’s possible to create a new enemy.  Create a new enemy when enemy_creation_timer is equal or less than zero and the current wave has enemy types in it.\nAdd animation to the Enemy sprite.  Get rid of the self.image attribute and create a new self.images attribute that uses all 9 images from “2_enemies_1_WALK_000.png” to “2_enemies_1_WALK_009.png”.  Use similar techniques that we used for animation previously to alternate sequentially between all the different images in self.images to determine which image gets drawn on the screen.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-58/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220423T130000
DTEND;TZID=America/Los_Angeles:20220423T140000
DTSTAMP:20260512T045716
CREATED:20220423T211744Z
LAST-MODIFIED:20220423T211744Z
UID:12647-1650718800-1650722400@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the enemy sprite.\nWe added the logic to move the enemy on the map.\n\nHomework: \n\nCreate a new sprite class called “TargetPointer” which has a single parameter the screen.  The target pointer should move to the location of the mouse.  Use the “assets/images/target.png” image for the target pointer.  Make sure the target pointer has a rect attribute for collision detection which we will use later.  You can use the code we use for the play button to determine the location of the mouse and where the target is drawn on the screen.\nAdd a game landing page and a play button.  Use “button_play.png” for the play button and “logo.png” for the landing page logo
URL:https://www.ayclogic.com/event/1-pm-python-game-development-57/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220406T190000
DTEND;TZID=America/Los_Angeles:20220406T200000
DTSTAMP:20260512T045716
CREATED:20220407T033424Z
LAST-MODIFIED:20220407T033505Z
UID:12373-1649271600-1649275200@www.ayclogic.com
SUMMARY:7 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the game won and game over pages.\nWe added 3 different tower types for the tower for purchase\, tower and bullet.\n\nHomework: \n\nMake sure that the sword tower spawns fireball bullets in 8 different directions.  It should look like this:\n\n\n\n\nReview the code for tower of defense and come up with some questions.
URL:https://www.ayclogic.com/event/7-pm-python-game-development-116/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220326T130000
DTEND;TZID=America/Los_Angeles:20220326T140000
DTSTAMP:20260512T045716
CREATED:20220326T210928Z
LAST-MODIFIED:20220326T210940Z
UID:12206-1648299600-1648303200@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over homework to add the game over page.\nWe went over how to reset the game after clicking the play button.\nWe added logic to modify the map so that the enemy tank finds a faster path through the map after destroying some bullets.\nWe used “copy.deepcopy” to make a copy of the MAP and store it in the self.map_copy attribute so that we can reset the MAP when clicking the play button again.\n\nHomework: \n\nAdd collision detection between the shield group and the enemy bullet group so the the shield protects the play from the enemy tank’s bullets.  The shield shouldn’t be destroyed when a bullet hits it\, but the bullet should be destroyed.\nAdd some logic so that the shield disappears after a certain number of frames\, maybe 10 seconds or 400 frames.  You can use the similar technique we used before for timers e.g. in launching_bullet.\nAdd some sounds effects when the player tank or enemy tank shoot a bullet.  Use the “assets/audio/TankFiring.wav” file.  You can use examples for previous projects how to load a sound and play it from a collided method/callback.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-54/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220323T190000
DTEND;TZID=America/Los_Angeles:20220323T200000
DTSTAMP:20260512T045716
CREATED:20220324T033417Z
LAST-MODIFIED:20220331T015654Z
UID:12166-1648062000-1648065600@www.ayclogic.com
SUMMARY:7 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the coins indicator.\nWe added the start waves button.\nWe added code for handling enemy waves.\n\nHomework: \n\nAdd configs for three different enemy types: ENEMY_1\, ENEMY_2\, ENEMY_3.\nInside enemy.py sprite\, depending on the enemy_type\, load a different image corresponding to the name of the directory.\nMake sure that you can load different enemy types with the three series of image animation where the given type of enemy is walking.\nBonus: create a new method called “create_enemy_with_timer”. If the self.current_wave attribute has a length greater than three then create a new enemy.  Use the self.current_wave.pop() method to make the current wave smaller and look up the next enemy_type.  Delay the creating of enemies using the timer technique.  Don’t try to pop more enemy_types and create more enemies if self.current_wave is empty.
URL:https://www.ayclogic.com/event/7-pm-python-game-development-114/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220319T130000
DTEND;TZID=America/Los_Angeles:20220319T140000
DTSTAMP:20260512T045716
CREATED:20220319T211035Z
LAST-MODIFIED:20220323T031025Z
UID:12090-1647694800-1647698400@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today:\n\nWe went over the homework to make the enemy tank fire the bullet.\nWe visualized the maze solver’s path by creating a white dot for each node coordinate.\nWe used the direction of the second node in the path from the maze solver to determine which way to move the enemy tank.\nWe fixed the bug where the maze solver thinks the enemy tank only takes up once map cell.\n\nHomework:\n\nAdd collision detection between the enemy bullets and the player tank.\nCreate a new game mode called GAME_OVER.\nWhen the game mode is GAME_OVER show game_over page which should look like this:\n\n\n\n\nWhen the enemy tank shoots the player tank change the game mode to be GAME_OVER.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-53/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220312T130000
DTEND;TZID=America/Los_Angeles:20220312T140000
DTSTAMP:20260512T045716
CREATED:20220312T220320Z
LAST-MODIFIED:20220312T220959Z
UID:11984-1647090000-1647093600@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today \n\nWe went over the homework to add the game won page.\nWe added logic so the enemy tank is recreated after winning the game.\nWe added the maze_solver and imported it in the enemy tank.\n\nHomework: \n\nCreate a new sprite group called enemy_bullet_group that will hold bullets shot from the enemy tank.\nAdd a method called launch_enemy_bullet which fires a bullet from the self.enemy_tank.  You adapt the logic from self.launch_bullet method.   You shouldn’t need to click the mouse to launch the enemy bullet successfully.  Create a Bullet with the correct direction and then add it to the self.enemy_bullet_group.  Make sure the enemy bullets get drawn on the screen.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-52/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220309T190000
DTEND;TZID=America/Los_Angeles:20220309T200000
DTSTAMP:20260512T045716
CREATED:20220310T041157Z
LAST-MODIFIED:20220310T042705Z
UID:11938-1646852400-1646856000@www.ayclogic.com
SUMMARY:7 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the landing page.\nWe add the TowerForPurchase sprite and created a floating TowerForPurchase when the target collides with the non floating TowerForPurchase.\n\nHomework: \n\nCreate a new sprite class called “TowerHotspot”\, and then position them at these locations:\n\nWhen the floating tower collides with a tower hotspot sprite\, create a Tower at the hotspot location using similar logic we used to create the floating TowerForPurchase.\nWhen the Tower is created\, remove the floating tower from its sprite group.\n\n 
URL:https://www.ayclogic.com/event/7-pm-python-game-development-112/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220305T130000
DTEND;TZID=America/Los_Angeles:20220305T140000
DTSTAMP:20260512T045716
CREATED:20220305T220348Z
LAST-MODIFIED:20220305T220348Z
UID:11874-1646485200-1646488800@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the landing page.\nWe went over the game walk and started the maze solver module to user for the enemy tank.\nAdded logic to kill the enemy tank with the bullet.\n\nHomework: \n\nAdd the game won page when the enemy tank is killed.  You should be able to click the play button on the game won page. Don’t worry about reseting the state of the map and game\, we’ll handle that later. Make sure the game won page looks something like this:
URL:https://www.ayclogic.com/event/1-pm-python-game-development-51/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220302T190000
DTEND;TZID=America/Los_Angeles:20220302T200000
DTSTAMP:20260512T045716
CREATED:20220303T040650Z
LAST-MODIFIED:20220303T171352Z
UID:11835-1646247600-1646251200@www.ayclogic.com
SUMMARY:7 PM - Python Game Development
DESCRIPTION:Today: \n\nWe added the bullet sprite.\nWe added direction to the bullet and spawned them in 4 different directions\nWe added the enemy health.\n\nHomework: \n\nAdd the landing page with a play button:\nWhen you click the play button show the game in session page instead.\nAdd collision detection between the bullet and the enemy which destroy both sprites.
URL:https://www.ayclogic.com/event/7-pm-python-game-development-111/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220226T130000
DTEND;TZID=America/Los_Angeles:20220226T140000
DTSTAMP:20260512T045716
CREATED:20220226T220248Z
LAST-MODIFIED:20220226T220359Z
UID:11764-1645880400-1645884000@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to center the bullet’s initial creation position\, and added collision detection between the enemy tank and the bricks.\nWe added logic so the enemy tank faces the enemy turret in the direction of the player tank.\n\nHomework: \n\nAdd some game modes: GAME_LANDING_PAGE and GAME_IN_SESSION.  Define a new attribute self.mode inside tank game originally set to GAME_LANDING_PAGE. Define a new method called handle_landing_page\, that shows the landing page like below:\n\nWhen you click the Play button switch the mode to GAME_IN_SESSION and show all the logic that we added previously with the two tanks etc.  You can follow previous examples we for handling the landing page in Birdie etc.\nBonus: Add collision detection between the player tank and the enemy tank and switch to GAME_LANDING_PAGE when the enemy tank gets destroyed.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-50/
CATEGORIES:Advanced Python Game Development,Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220219T130000
DTEND;TZID=America/Los_Angeles:20220219T140000
DTSTAMP:20260512T045716
CREATED:20220219T220019Z
LAST-MODIFIED:20220219T220027Z
UID:11660-1645275600-1645279200@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over how to add the iron walls.\nWe reviewed how we pointed the bullet in the correct direction.\nWe moved the bullet in the direction the turret is facing.\n\nHomework: \n\nSpawn the bullet so that first appears in the center of the tank.\nAdd logic so the enemy tank can’t move through both normal and iron bricks.  You can use the same technique we used for the player tank.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-49/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220216T190000
DTEND;TZID=America/Los_Angeles:20220216T200000
DTSTAMP:20260512T045716
CREATED:20220217T040335Z
LAST-MODIFIED:20220217T040335Z
UID:11625-1645038000-1645041600@www.ayclogic.com
SUMMARY:7 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to add the target.\nWe added directions and kept track of the current region and expected directions\, so the enemy could walk down the path.\n\nHomework: \n\nFinish the logic so the enemy walks down the path through region “5a” or “5b”.\nAdd animation to to the enemy.  First load up an attribute called “self.images” which contains all the animation frames from “2_enemies_1_WALK_000.png” to “2_enemies_1_WALK_009.png”.  Then add animation by add a get_next_image method which returns the next image after a 5 frame delay.
URL:https://www.ayclogic.com/event/7-pm-python-game-development-108/
CATEGORIES:Advanced Python Game Development
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/Los_Angeles:20220212T130000
DTEND;TZID=America/Los_Angeles:20220212T140000
DTSTAMP:20260512T045716
CREATED:20220212T224156Z
LAST-MODIFIED:20220212T224731Z
UID:11560-1644670800-1644674400@www.ayclogic.com
SUMMARY:1 PM - Python Game Development
DESCRIPTION:Today: \n\nWe went over the homework to rotate the shield.\nWe added animation to the exploding brick.\nWe oriented the bullet so it’s facing the correct direction using the angle passed by the turret.\n\nHomework: \n\nModify the Brick sprite constructor to add an additional parameter type that has value either WALL_FLAG or BORDER_WALL_FLAG.  When WALL_FLAG is passed in the constructor\, use the current logic to load the red brick image\, but when BORDER_WALL_FLAG is passed load a  different image\, “IronWall.png”.  You can find this image here: Or at gitlab here.\nModify the create_map method so that when the cell_type is a BORDER_WALL_FLAG\, then create a Brick is passed with the type parameter BORDER_WALL_FLAG\, but when it’s wall type  is WALL_FLAG\, then the Brick is created with the type parameter WALL_FLAG.  Add the bricks created with the border wall flag to a separate sprite group so that they can’t be destroyed by the bullets.\nModify the MAP variable in config.py so that the top side\, bottom side\, and left and right sides of the map have the BORDER_WALL_FLAG value. Make sure that these get created on the screen using the create_map method:\nBonus: move the bullet in the correct direction based on the direction parameter that gets passed in from the turret.  Also center the bullet so that when it’s created\, the center of the bullet is equal to the center of the turret.
URL:https://www.ayclogic.com/event/1-pm-python-game-development-48/
CATEGORIES:Advanced Python Game Development
END:VEVENT
END:VCALENDAR