Skip to content

SinlessDevil/TestTaskShotBall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Test Task - Shot Ball

Gameplay : On the screen is the balloon player in the lower left corner, and the target in the upper right corner, where the ball must hit. The path is blocked by obstacles. The ball player creates shots due to its size, it is necessary to clear a path for the ball player to jump along the cleared path to the final goal.


Image alt Image alt Image alt

Game logic

Button through action

I made all the buttons on the stage through Action. It's quite convenient to subscribe to buttons + buttons don't know what they are responsible for, and this is its main advantage. This script generally complies with the SRP principle, so it can be used in other projects. I also implemented a simple State machine. Where I switch panels.

Image alt Image alt


Patten Singletone

Implemented the Singletone pattern for Audio Managera, Pool Mono, Save System. Singleton is a creational design pattern, which ensures that only one object of its kind exists and provides a single point of access to it for any other code.

Image alt


Patten Observer

Interaction of interfaces and the GamePlay itself has always done with the help of Action. Observer is a behavioral design pattern that allows some objects to notify other objects about changes in their state. The Observer pattern provides a way to subscribe and unsubscribe to and from these events for any object that implements a subscriber interface.

Image alt


Pattern Pool Objects

For the effects that I play after each destruction of objects, I decided to use Pool Object to save memory.

Image alt


Pattern Factory

For bullets still decided to make a regular factory, for the reason that they are not as often call as effects, but you can still think about pool objects.

Image alt


Shot System

Made this module, the basis of this Shot can be said to be the access point to this module. Shot Reload - reload the weapon, Shot SizeTransfer - pumps the size of the ball into the bullet. Push Bullet - the bullet itself. (I also separated the logic here, on the bullet factory, and the Shot Direction itself.)

Image alt Image alt Image alt Image alt


OOP

Wherever there were more than two implementations, I made a hierarchy of inheritance through abstraction.

Image alt


Aniamtion Player Jump - Open Door

I made an animation for the player when jumping using the "box in the butt" method. This is when the box is attached to the character to his center with Joint. Also the door is also made through the joint.

Image alt Image alt


#FrameWork

UnitRx

Image alt

Zenject

Image alt

DoTween

Image alt


#Extensions

Button Extensions

Image alt

Transform Extensions

Image alt

LogError Extensions

Image alt


For now, that's it. =)

Releases

No releases published

Packages

No packages published

Languages