color fix
parent
69213f5d8b
commit
3e81542b0e
|
@ -1,9 +1,6 @@
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
import string
|
import string
|
||||||
import random
|
import random
|
||||||
from colorama import Fore, Back, Style
|
|
||||||
from colorama import just_fix_windows_console
|
|
||||||
just_fix_windows_console()
|
|
||||||
|
|
||||||
class stdrend:
|
class stdrend:
|
||||||
def __init__(self, size):
|
def __init__(self, size):
|
||||||
|
@ -17,9 +14,18 @@ class stdrend:
|
||||||
self._win.update()
|
self._win.update()
|
||||||
self._grid[f"{x}:{y}"] = temp
|
self._grid[f"{x}:{y}"] = temp
|
||||||
|
|
||||||
def pix(self, x, y, text):
|
def coltohex(self, target):
|
||||||
|
colors = []
|
||||||
|
for i in target:
|
||||||
|
colors.append(("0"*(2-len(hex(i)[2:])))+hex(i)[2:])
|
||||||
|
out = ""
|
||||||
|
for i in colors:
|
||||||
|
out = out + i
|
||||||
|
return "#"+out
|
||||||
|
|
||||||
|
def pix(self, x, y, text, bcolor, fcolor):
|
||||||
if f"{x}:{y}" in self._grid:
|
if f"{x}:{y}" in self._grid:
|
||||||
self._grid[f"{x}:{y}"].config(text=text)
|
self._grid[f"{x}:{y}"].config(text=text, bg=self.coltohex(bcolor), fg=self.coltohex(fcolor))
|
||||||
self._win.update()
|
self._win.update()
|
||||||
|
|
||||||
class vector2:
|
class vector2:
|
||||||
|
@ -28,27 +34,21 @@ class vector2:
|
||||||
self.y = y
|
self.y = y
|
||||||
|
|
||||||
def __add__(self, v):
|
def __add__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x+v.x, self.y+v.y)
|
return vector2(self.x+v.x, self.y+v.y)
|
||||||
|
|
||||||
def __sub__(self, v):
|
def __sub__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x-v.x, self.y-v.y)
|
return vector2(self.x-v.x, self.y-v.y)
|
||||||
|
|
||||||
def __mul__(self, v):
|
def __mul__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x*v.x, self.y*v.y)
|
return vector2(self.x*v.x, self.y*v.y)
|
||||||
|
|
||||||
def __iadd__(self, v):
|
def __iadd__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x+v.x, self.y+v.y)
|
return vector2(self.x+v.x, self.y+v.y)
|
||||||
|
|
||||||
def __isub__(self, v):
|
def __isub__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x-v.x, self.y-v.y)
|
return vector2(self.x-v.x, self.y-v.y)
|
||||||
|
|
||||||
def __imul__(self, v):
|
def __imul__(self, v):
|
||||||
if not type(v) != vector2: raise ValueError("Must be vector2!")
|
|
||||||
return vector2(self.x*v.x, self.y*v.y)
|
return vector2(self.x*v.x, self.y*v.y)
|
||||||
|
|
||||||
class NULL:
|
class NULL:
|
||||||
|
@ -64,11 +64,6 @@ class enum:
|
||||||
def getposssel(self):
|
def getposssel(self):
|
||||||
return list(self._sel.keys())
|
return list(self._sel.keys())
|
||||||
|
|
||||||
_fcolors = {"norm": Fore.RESET, "red": Fore.RED, "green": Fore.GREEN, "blue": Fore.BLUE, "white": Fore.WHITE, "cyan": Fore.CYAN, "black": Fore.BLACK, "magenta": Fore.MAGENTA, "yellow": Fore.YELLOW}
|
|
||||||
_bcolors = {"norm": Back.RESET, "red": Back.RED, "green": Back.GREEN, "blue": Back.BLUE, "white": Back.WHITE, "cyan": Back.CYAN, "black": Back.BLACK, "magenta": Back.MAGENTA, "yellow": Back.YELLOW}
|
|
||||||
|
|
||||||
backcolors = enum(_bcolors)
|
|
||||||
forecolors = enum(_fcolors)
|
|
||||||
cammode = enum({"editable": 0, "follow": 1})
|
cammode = enum({"editable": 0, "follow": 1})
|
||||||
|
|
||||||
class obj:
|
class obj:
|
||||||
|
@ -84,8 +79,8 @@ class obj:
|
||||||
self.collide = True
|
self.collide = True
|
||||||
self.touch = True
|
self.touch = True
|
||||||
self.anchored = False
|
self.anchored = False
|
||||||
self.bcolor = backcolors.norm
|
self.bcolor = (255, 255, 255)
|
||||||
self.fcolor = forecolors.norm
|
self.fcolor = (0, 0, 0)
|
||||||
|
|
||||||
class camera(obj):
|
class camera(obj):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -101,11 +96,12 @@ class camera(obj):
|
||||||
self.position = self.subject.position
|
self.position = self.subject.position
|
||||||
|
|
||||||
class game:
|
class game:
|
||||||
def __init__(self, size=[20, 20], renderer=stdrend):
|
def __init__(self, size=[10, 10], renderer=stdrend):
|
||||||
if renderer == None: raise TypeError("Renderer class needed!")
|
if renderer == None: raise TypeError("Renderer class needed!")
|
||||||
self._size = size
|
self._size = size
|
||||||
self._renderer = renderer(size)
|
self._renderer = renderer(size)
|
||||||
self._objects = {}
|
self._objects = {}
|
||||||
|
self.camera = camera()
|
||||||
|
|
||||||
def addobj(self, obj):
|
def addobj(self, obj):
|
||||||
id = ""
|
id = ""
|
||||||
|
@ -121,14 +117,23 @@ class game:
|
||||||
def removeobjbyid(self, id):
|
def removeobjbyid(self, id):
|
||||||
self._objects.pop(id).ID = NULL()
|
self._objects.pop(id).ID = NULL()
|
||||||
|
|
||||||
def render(self):
|
def between(self, min, max, target):
|
||||||
for i in self._objects:
|
if min < target < max: return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def render(self):
|
||||||
|
for i in list(self._objects.values()):
|
||||||
|
pos = i.position + self.camera.position
|
||||||
|
if not self.between(-1, self._size[0], pos.x) or not self.between(-1, self._size[1], pos.y): continue
|
||||||
|
self._renderer.pix(pos.x, pos.y, i.char, i.bcolor, i.fcolor)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
testgame = game()
|
testgame = game()
|
||||||
object = obj()
|
object = obj()
|
||||||
|
object.char = "#"
|
||||||
testgame.addobj(object)
|
testgame.addobj(object)
|
||||||
|
testgame.render()
|
||||||
print(object.ID)
|
print(object.ID)
|
||||||
|
input("enter to exit")
|
||||||
|
|
||||||
|
|
||||||
|
|
8
main.py
8
main.py
|
@ -1,9 +1,11 @@
|
||||||
import mtTkinter as tk
|
import mtTkinter as tk
|
||||||
|
from tkinter import ttk as tkk
|
||||||
import PCPL
|
import PCPL
|
||||||
import langsys
|
import langsys
|
||||||
import time
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import hashengine
|
||||||
|
|
||||||
global LH
|
global LH
|
||||||
LH = langsys.langhandler()
|
LH = langsys.langhandler()
|
||||||
|
@ -22,6 +24,12 @@ def selectlang(new):
|
||||||
def GUIinit():
|
def GUIinit():
|
||||||
global container
|
global container
|
||||||
container = tk.Tk()
|
container = tk.Tk()
|
||||||
|
|
||||||
|
#tree init
|
||||||
|
objtree = tkk.Treeview(container)
|
||||||
|
objtree.grid()
|
||||||
|
|
||||||
|
#menu init
|
||||||
menu = tk.Menu(container)
|
menu = tk.Menu(container)
|
||||||
container.config(menu=menu)
|
container.config(menu=menu)
|
||||||
filemenu = tk.Menu(menu)
|
filemenu = tk.Menu(menu)
|
||||||
|
|
Loading…
Reference in New Issue