Giter VIP home page Giter VIP logo

zeldaremade's People

Contributors

edwinp1998 avatar jacobbatt avatar jenafogarty avatar maggieprograms avatar robertwetzler avatar yytrecg avatar

Stargazers

 avatar  avatar

Watchers

 avatar

zeldaremade's Issues

Create Enemy Classes

Create all sprite classes (ISprite implementations) for all enemies

  • Draw method with correct source bounding box
  • If animated sprite, cycle through animation frames
    There's a lot of enemies to make for this, so we can split this up among multiple people if needed

Enemy Logic

  • Each enemy has it's own movement path
  • Each enemy has it's own projectile

Split Enemies and NPCs

TODO:

  1. Create an Enemy Interface that includes methods that enemies share.
  2. Refactor enemy classes to extend the enemy interface

NPCs: Merchant, Old man, Flame
Enemies: Bat, Skeleton, Dog, Big and small jellies, hand, trap, snake, dragon, dinosaur

Character Logic

  • Character moves with keys
  • Character spawns items
  • Character animates (walking, using items)
  • Character takes damage

Split NPC and Enemies

TODO:

  1. Create an Enemy Interface that includes methods that enemies share.
  2. Refactor enemy classes to extend the enemy interface

NPCs: Merchant, Old man, Flame
Enemies: Bat, Skeleton, Dog, Big and small jellies, hand, trap, snake, dragon, dinosaur

Creating all the sprites

https://www.spriters-resource.com/nes/legendofzelda/
Player
• Link (animated)
• Wooden Sword
• Sword beam
• Arrows
• Boomerang
• Bombs
• Blue Candle
• Blue Potion
• Blue ring
Items
• Compass
• Key
• Heart container
• Wooden boomerang
• Bow
• Heart
• Rupee
• Arrow
• Bomb
• Fairy
• Clock
Enemies and NPCs
• Bat (keese)
• Skeleton (stalfos)
• Dog-like monster (goriya)
• Jelly (gel-small and zol-big)
• Hand (wall master)
• Spike cross (trap)
• Snake (rope)
• Boss/Dragon (aquamentus)
• Boss/Dragon fireballs
• Boss/Dinosaur (Dodongo)
• Old man
• Merchant
• Flame
Environment – interactive
• Statues
• Square, sometimes movable block
• Walls
• Locked door
• Shut door
• Open door
• Bombed opening
• Gap tile
• Stairs
• Ladder tile
• Brick tile
• Fire
Environment – non-interactive
• Floor tile
• Room border

Create All Sprites

Sprites need to be created for the player, enemies, and the items (and likely the map).

Creating a sprite involves creating the sprite sheet and implementing an ISprite class for that sprite

Sprite List:
https://www.spriters-resource.com/nes/legendofzelda/
Player
• Link (animated)
• Wooden Sword
• Sword beam
• Arrows
• Boomerang
• Bombs
• Blue Candle
• Blue Potion
• Blue ring
Items
• Compass
• Key
• Heart container
• Wooden boomerang
• Bow
• Heart
• Rupee
• Arrow
• Bomb
• Fairy
• Clock
Enemies and NPCs
• Bat (keese)
• Skeleton (stalfos)
• Dog-like monster (goriya)
• Jelly (gel-small and zol-big)
• Hand (wall master)
• Spike cross (trap)
• Snake (rope)
• Boss/Dragon (aquamentus)
• Boss/Dragon fireballs
• Boss/Dinosaur (Dodongo)
• Old man
• Merchant
• Flame
Environment – interactive
• Statues
• Square, sometimes movable block
• Walls
• Locked door
• Shut door
• Open door
• Bombed opening
• Gap tile
• Stairs
• Ladder tile
• Brick tile
• Fire
Environment – non-interactive
• Floor tile
• Room border

Add Commands for switching between block sprites

I have finished when I have

  1. Created command classes for getting next and previous block sprites
  2. Mapped 'Get next block' command to 'y' key and 'get previous block' command to 't' key in Keyboard controller
  3. When running, the game will change what block sprite is drawn when the 't' or 'y' key is pressed

Create Item Sprite Classes

Create all sprite classes (ISprite implementations) for all items

  • Draw method with correct source bounding box
  • If animated sprite, cycle through animation frames

Create Player Sprites

Player sprites include:

  • link movement animation
  • link use item or weapon animation
  • link pickup item animation
  • link use sword animation

Create Player Sprite Classes

Create all sprite classes (ISprite implementations) for the player

  • Draw method with correct source bounding box
  • If animated sprite, cycle through animation frames

Complete Sprint Planning for Sprint 2

Make sure all team members have been added to the project.
Enter start and end dates for Sprint 2.
Add several product backlog items (rows on the board) for the requirements for this sprint (controllers, commands, objects, sprites, etc.) and assign them to Sprint 2.
Add tasks with effort amounts and assign each to someone.
Examples could include:
Add a task for creating interfaces (or you can let the person responsible for each part of the implementation choose when to provide interfaces).
Add a task for creating a Link class.
Add a task for handling Link's state transitions.
Add a task for creating enemy classes.
Add a task for creating item classes.
Add a task for creating block class(es).
Add tasks for implementing commands and controllers.
Add a task to implement keyboard input.
Some advice: for Sprint 2 the player character logic is disproportionately larger than most of the other features, so it is recommended to split this work between at least two members.

Class for each Item

After #5 is completed, create a class for each item

  • Each item has to display/cycle through it's sprites
  • Register each item class to the command that cycles through them
  • No interaction with other things currently

Class for each Block

  • Implement draw and update (consider animated blocks)
  • Register block classes to command that cycles through them

Create Block Sprite Classes

Create all sprite classes (ISprite implementations) for all blocks

  • Draw method with correct source bounding box
  • If animated sprite, cycle through animation frames

Create Command Classes

  • Cycle forward/previous for blocks, items, enemies
  • Reset command
  • Quit command
    Player commands
  • attack using sword
  • WASD walking
  • Switch items (1,2,3, etc)
  • Take damage

Create All Sprite Classes

Create concrete Sprite classes (derived from ISprite) for each enemy/NPC, item, player, and block

Create interface for entites

  • Movement
  • Animation
  • Using items
  • Take damage

IEntity

  • Link and Enemies derive from this
  • Animation, using items, (potentially) taking damage

IEnemy

  • derives from IEntity
  • method for automated movement

IPlayer

  • derives from IEntity
  • methods for movement via input (using command design pattern)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.