abbarnes icon

RPG Stat Bar [codeskulptor]

abbarnes | PRO | 12/12/17 03:23:00 PM UTC | 0 ⭐ | 267 👁️ | Never ⏰ | []
Python |

3.78 KB

|

None

|

0 👍

/

0 👎

import math
import random
import simplegui
#http://www.codeskulptor.org/#user43_rE3EqTnb00CuIk0_0.py
 
 
WIDTH = 1920 * .8
HEIGHT = 1080 * .8
 
#0-start menu, 1- character creation, 2-spawn
gamestate = 0
 
def newgame():
    global gamestate
    gamestate = 0
    
 
    
def keydown(key):
    global gamestate
    
    if gamestate == 1:
        strength.incremental(key)
    
    if key == simplegui.KEY_MAP['space']:
        gamestate = 1
        print "spacebar"
    if key == simplegui.KEY_MAP['left']: 
        if gamestate == 1:
            strength.incremental('left')
    elif key == simplegui.KEY_MAP['right']:
        if gamestate == 1:
            strength.incremental('right')
#    elif key == simplegui.KEY_MAP['up']:
#    elif key == simplegui.KEY_MAP['space']:
        
def keyup(key):
#    if key == simplegui.KEY_MAP['left']:
#        my_ship.increment_angle_vel()
#    elif key == simplegui.KEY_MAP['right']:
#        my_ship.decrement_angle_vel()
#    elif key == simplegui.KEY_MAP['up']:
#        my_ship.set_thrust(False)
    pass
 
def click(pos):
    if gamestate == 1:
        if pos[0] > strength.position[0] and pos[0] < strength.position[0]+strength.size[0]:
            if pos[1] > strength.position[1] and pos[1] < strength.position[1]+strength.size[1]:
                strength.update(pos)
       
 
class statbar:
    def __init__(self, name, minvalue, maxvalue, increment, size, position):
        self.name = name
        self.minvalue = minvalue
        self.maxvalue = maxvalue
        self.increment = increment
        self.size = size
        self.position = position
        self.currentval = 0.0
        self.color = "Gray"
        
    def __str__(self):
        print "Sliding Stat Bar: " + self.name 
        print "Current Value: " + self.currentval
        
    def incremental(self,key):
        if key == "right" and self.currentval < self.maxvalue:
            self.currentval += self.increment
        elif key == "left" and self.currentval > self.minvalue:
            self.currentval -= self.increment
      
    def update(self, pos):
        self.currentval = ((pos[0]-self.position[0])/self.size[0])*100.0//self.increment * self.increment
#        percent = ((pos[0]-self.position[0])/self.size[0])*100.0
#        if percent > 100-self.increment:
#            self.currentval = self.maxvalue
#        else: 
#            self.currentval = ((pos[0]-self.position[0])/self.size[0])*100.0//self.increment * self.increment
        print self.currentval
     
    def draw(self, canvas):
        canvas.draw_polygon((self.position, (self.position[0] + self.size[0], self.position[1]),
                             (self.position[0] + self.size[0], self.position[1]+self.size[1]),
                             (self.position[0], self.position[1]+self.size[1])), 1, "Red", "Red")
        canvas.draw_text(self.name + " = " + str(self.currentval), 
                         (self.position[0]+self.size[0]/15,self.position[1]+self.size[1]/1.45), 20, "White")
 
 
def draw_handler(canvas):
    global gamestate
    
    
    if gamestate == 0:
        canvas.draw_text("Call of the Eternals", (WIDTH/3.5, HEIGHT/2), 80, "Red")
        canvas.draw_text("Press Spacebar to Begin", (WIDTH/2.8, HEIGHT * .7), 40, "Red")
    elif gamestate == 1:
        canvas.draw_text("Character Creation", (WIDTH/3.5, HEIGHT/8), 80, "Red")
        strength.draw(canvas)
        
    
        
    
strength = statbar("Strength", 0, 100, 1, (400,30), (WIDTH/10, HEIGHT/6)) 
 
frame = simplegui.create_frame("Call of the Eternals", WIDTH, HEIGHT)
 
frame.set_keyup_handler(keyup)
frame.set_keydown_handler(keydown)
frame.set_mouseclick_handler(click)  
 
frame.set_canvas_background("black")
frame.set_draw_handler(draw_handler)
frame.start()

Comments