MATLAB Answers

How to make multiple variables equal a class?

2 views (last 30 days)
Shane Gibbs
Shane Gibbs on 7 Jan 2019
Edited: OCDER on 7 Jan 2019
Hello!
I need some help with trying to make multiple variables equal a 'class.'
I started using MatLab 2-3 months ago, so I am not very good at it.
I am currently making a menu-based RPG game, and I need to make an "equipped" screen.
What I am having trouble is making multiple variables = 1 "class"
For example...
Swords = (Bronze sword, Steel sword, Diamond Sword)
Helmet = (Bronze Helmet, Iron helmet, dark helmet)
Leggings = (Bronze Leggings, Iron Leggings, Stone Leggings)
and so on.
This way, I can prevent users from equipping a sword into a helmet slot, or prevent a legging item from equipping to a weapon slot.
I apologize if this is confusing.
Thank you so much! I will attach a copy of the game for assistance, or if you would like to play it.

  0 Comments

Sign in to comment.

Accepted Answer

OCDER
OCDER on 7 Jan 2019
Edited: OCDER on 7 Jan 2019
Try the following testGame.m to see how to use object-oriented programming in Matlab. You'll need to define classes via classdef function. This link is helpful too: https://www.mathworks.com/help/matlab/matlab_oop/create-a-simple-class.html
Since most avatars have 2 hands, you'll need a separate function to decide what to do when you try to equip more items than the avatar can handle. Ex: equipping 2-hand sword + 1-hand shield shouldn't be allowed. You'll have to unequip the other hand, etc. This, I leave up the the game developer.
%testGame.m
P1 = Player('player1'); %Create new player of lv1 named player1
NewItem = Weapon('Sword Of Matlab', 10000, '2-hand'); %Make new item
P1.wear(NewItem); %Equip player with new item
NewItem = Armor('Shield of Functions', 10000, '1-hand'); %Make new item
P1.wear(NewItem); %Equip player with new item
P1.levelUp %Level up the player
P1.Level
% 2
P1.Armor
% Armor with properties:
% Name: 'Shield of Functions'
% ArmorPt: 10000
% Type: '1-hand'
P1.Weapon
% Weapon with properties:
% Name: 'Sword Of Matlab'
% Damage: 10000
% Type: '2-hand'

  0 Comments

Sign in to comment.

More Answers (1)

TADA
TADA on 7 Jan 2019
Edited: TADA on 7 Jan 2019
Take A Look At classdef documentation
Also Worth mentioning That For Proper Polymorphic Behaviour In Matlab, your Base class Needs To Inherit matlab.mixin.Heterogeneous
Then You Can Also Use the isa Function To Test If An Object Is Of A Specific Type Or If It's Of A Subclass Of That Type

  0 Comments

Sign in to comment.

Categories