Skip to content

Instantly share code, notes, and snippets.

@jessefreeman
Created November 7, 2011 13:58
Show Gist options
  • Save jessefreeman/1345076 to your computer and use it in GitHub Desktop.
Save jessefreeman/1345076 to your computer and use it in GitHub Desktop.
Example of how I handle EXP and a next level progress bar in an RPG
// This is the code from the game state object which saves out the player's progress
public function increasePlayerExperience(value:int):void
{
_dataObject.playerExperience += value;
if(_dataObject.playerExperience > calculateExperiencePoints(getPlayerLevel()+1))
{
increasePlayerLevel();
}
}
public function getPlayerExperience():int
{
if(!_dataObject.playerExperience)
_dataObject.playerExperience = 0;
return _dataObject.playerExperience;
}
public function getPlayerLevel():int{
if(!_dataObject.playerLevel)
_dataObject.playerLevel = 1;
return _dataObject.playerLevel;
}
public function increasePlayerLevel():void
{
_dataObject.playerLevel = getPlayerLevel()+1;
}
public function calculateExperiencePoints(level:int):int{
return (level * (level + 1)) * 100;
}
// This is the code that renders out the exp bar.
private function createDisplay():void
{
var levelDifference:int = state.calculateExperiencePoints(state.getPlayerLevel()+1) - state.calculateExperiencePoints(state.getPlayerLevel());
var currentLevelEXP:int = state.getPlayerExperience() - state.calculateExperiencePoints(state.getPlayerLevel());
var percent:Number = currentLevelEXP/levelDifference;
var maxWidth:int = 133;
var maxHeight:int = 10;
var border:int = 2;
levelBar = addChild(new Shape()) as Shape;
levelBar.x = border;
levelBar.y = label.y + label.height + 4
levelBar.graphics.lineStyle(2,0x999999);
levelBar.graphics.beginFill(0x0)
levelBar.graphics.drawRect(0,0,maxWidth,maxHeight);
levelBar.graphics.lineStyle(0,0,0);
levelBar.graphics.beginFill(0xcccccc);
levelBar.graphics.drawRect(border*.5,border*.5,(maxWidth-(border)) * percent, maxHeight- border);
levelBar.graphics.endFill();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment