abbarnes

RPG Stat Bar [codeskulptor]

Dec 12th, 2017
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.78 KB | None | 0 0
  1. import math
  2. import random
  3. import simplegui
  4. #http://www.codeskulptor.org/#user43_rE3EqTnb00CuIk0_0.py
  5.  
  6.  
  7. WIDTH = 1920 * .8
  8. HEIGHT = 1080 * .8
  9.  
  10. #0-start menu, 1- character creation, 2-spawn
  11. gamestate = 0
  12.  
  13. def newgame():
  14.     global gamestate
  15.     gamestate = 0
  16.    
  17.  
  18.    
  19. def keydown(key):
  20.     global gamestate
  21.    
  22.     if gamestate == 1:
  23.         strength.incremental(key)
  24.    
  25.     if key == simplegui.KEY_MAP['space']:
  26.         gamestate = 1
  27.         print "spacebar"
  28.     if key == simplegui.KEY_MAP['left']:
  29.         if gamestate == 1:
  30.             strength.incremental('left')
  31.     elif key == simplegui.KEY_MAP['right']:
  32.         if gamestate == 1:
  33.             strength.incremental('right')
  34. #    elif key == simplegui.KEY_MAP['up']:
  35. #    elif key == simplegui.KEY_MAP['space']:
  36.        
  37. def keyup(key):
  38. #    if key == simplegui.KEY_MAP['left']:
  39. #        my_ship.increment_angle_vel()
  40. #    elif key == simplegui.KEY_MAP['right']:
  41. #        my_ship.decrement_angle_vel()
  42. #    elif key == simplegui.KEY_MAP['up']:
  43. #        my_ship.set_thrust(False)
  44.     pass
  45.  
  46. def click(pos):
  47.     if gamestate == 1:
  48.         if pos[0] > strength.position[0] and pos[0] < strength.position[0]+strength.size[0]:
  49.             if pos[1] > strength.position[1] and pos[1] < strength.position[1]+strength.size[1]:
  50.                 strength.update(pos)
  51.        
  52.  
  53. class statbar:
  54.     def __init__(self, name, minvalue, maxvalue, increment, size, position):
  55.         self.name = name
  56.         self.minvalue = minvalue
  57.         self.maxvalue = maxvalue
  58.         self.increment = increment
  59.         self.size = size
  60.         self.position = position
  61.         self.currentval = 0.0
  62.         self.color = "Gray"
  63.        
  64.     def __str__(self):
  65.         print "Sliding Stat Bar: " + self.name
  66.         print "Current Value: " + self.currentval
  67.        
  68.     def incremental(self,key):
  69.         if key == "right" and self.currentval < self.maxvalue:
  70.             self.currentval += self.increment
  71.         elif key == "left" and self.currentval > self.minvalue:
  72.             self.currentval -= self.increment
  73.      
  74.     def update(self, pos):
  75.         self.currentval = ((pos[0]-self.position[0])/self.size[0])*100.0//self.increment * self.increment
  76. #        percent = ((pos[0]-self.position[0])/self.size[0])*100.0
  77. #        if percent > 100-self.increment:
  78. #            self.currentval = self.maxvalue
  79. #        else:
  80. #            self.currentval = ((pos[0]-self.position[0])/self.size[0])*100.0//self.increment * self.increment
  81.         print self.currentval
  82.      
  83.     def draw(self, canvas):
  84.         canvas.draw_polygon((self.position, (self.position[0] + self.size[0], self.position[1]),
  85.                              (self.position[0] + self.size[0], self.position[1]+self.size[1]),
  86.                              (self.position[0], self.position[1]+self.size[1])), 1, "Red", "Red")
  87.         canvas.draw_text(self.name + " = " + str(self.currentval),
  88.                          (self.position[0]+self.size[0]/15,self.position[1]+self.size[1]/1.45), 20, "White")
  89.  
  90.  
  91. def draw_handler(canvas):
  92.     global gamestate
  93.    
  94.    
  95.     if gamestate == 0:
  96.         canvas.draw_text("Call of the Eternals", (WIDTH/3.5, HEIGHT/2), 80, "Red")
  97.         canvas.draw_text("Press Spacebar to Begin", (WIDTH/2.8, HEIGHT * .7), 40, "Red")
  98.     elif gamestate == 1:
  99.         canvas.draw_text("Character Creation", (WIDTH/3.5, HEIGHT/8), 80, "Red")
  100.         strength.draw(canvas)
  101.        
  102.    
  103.        
  104.    
  105. strength = statbar("Strength", 0, 100, 1, (400,30), (WIDTH/10, HEIGHT/6))
  106.  
  107. frame = simplegui.create_frame("Call of the Eternals", WIDTH, HEIGHT)
  108.  
  109. frame.set_keyup_handler(keyup)
  110. frame.set_keydown_handler(keydown)
  111. frame.set_mouseclick_handler(click)  
  112.  
  113. frame.set_canvas_background("black")
  114. frame.set_draw_handler(draw_handler)
  115. frame.start()
Advertisement
Add Comment
Please, Sign In to add comment