mirror of
https://github.com/csd4ni3l/logical-signals.git
synced 2025-11-05 05:58:09 +01:00
Add youtube video demo to README, fix LogicalGates having no texture, because no value, fix gate zoom scaling applying to non-label gates
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
Logical Signals is a game where you have to direct and change signals with logical gates to meet the end result.
|
Logical Signals is a game where you have to direct and change signals with logical gates to meet the end result.
|
||||||
|
|
||||||
|
Demo video:
|
||||||
|
[](https://youtu.be/OPEPoMZabS4)
|
||||||
|
|
||||||
# How to play:
|
# How to play:
|
||||||
- You can move gates by dragging their buttons (not the plus ones)
|
- You can move gates by dragging their buttons (not the plus ones)
|
||||||
- To create connections, click on the + buttons (left for input, right for output)
|
- To create connections, click on the + buttons (left for input, right for output)
|
||||||
|
|||||||
97
game/play.py
97
game/play.py
@@ -17,6 +17,8 @@ class LogicalGate(arcade.Sprite):
|
|||||||
self.input: list[LogicalGate] = []
|
self.input: list[LogicalGate] = []
|
||||||
self.output: LogicalGate | None = None
|
self.output: LogicalGate | None = None
|
||||||
|
|
||||||
|
self.calculate_value()
|
||||||
|
|
||||||
def calculate_value(self):
|
def calculate_value(self):
|
||||||
if self.gate_type == "OUTPUT" and self.input:
|
if self.gate_type == "OUTPUT" and self.input:
|
||||||
self.value = self.input[0].calculate_value()
|
self.value = self.input[0].calculate_value()
|
||||||
@@ -357,54 +359,55 @@ class Game(arcade.gui.UIView):
|
|||||||
|
|
||||||
gate: arcade.gui.UIInputText
|
gate: arcade.gui.UIInputText
|
||||||
for gate in self.gates:
|
for gate in self.gates:
|
||||||
if scroll_y == 1:
|
if gate.gate_type == "LABEL":
|
||||||
gate.scale(1.1)
|
if scroll_y == 1:
|
||||||
else:
|
gate.scale(1.1)
|
||||||
gate.scale(1 / 1.1)
|
else:
|
||||||
|
gate.scale(1 / 1.1)
|
||||||
|
|
||||||
if gate.width < self.window.width / 18:
|
if gate.width < self.window.width / 18:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=7, color=gate._text_color),
|
dict(font_name="Roboto", font_size=7, color=gate._text_color),
|
||||||
)
|
)
|
||||||
elif gate.width < self.window.width / 16:
|
elif gate.width < self.window.width / 16:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=9, color=gate._text_color),
|
dict(font_name="Roboto", font_size=9, color=gate._text_color),
|
||||||
)
|
)
|
||||||
elif gate.width < self.window.width / 14:
|
elif gate.width < self.window.width / 14:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=11, color=gate._text_color),
|
dict(font_name="Roboto", font_size=11, color=gate._text_color),
|
||||||
)
|
)
|
||||||
|
|
||||||
elif gate.width < self.window.width / 12:
|
elif gate.width < self.window.width / 12:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=13, color=gate._text_color),
|
dict(font_name="Roboto", font_size=13, color=gate._text_color),
|
||||||
)
|
)
|
||||||
elif gate.width < self.window.width / 10:
|
elif gate.width < self.window.width / 10:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=15, color=gate._text_color),
|
dict(font_name="Roboto", font_size=15, color=gate._text_color),
|
||||||
)
|
)
|
||||||
elif gate.width < self.window.width / 8:
|
elif gate.width < self.window.width / 8:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=17, color=gate._text_color),
|
dict(font_name="Roboto", font_size=17, color=gate._text_color),
|
||||||
)
|
)
|
||||||
elif gate.width < self.window.width / 6:
|
elif gate.width < self.window.width / 6:
|
||||||
gate.doc.set_style(
|
gate.doc.set_style(
|
||||||
0,
|
0,
|
||||||
len(gate.text),
|
len(gate.text),
|
||||||
dict(font_name="Roboto", font_size=19, color=gate._text_color),
|
dict(font_name="Roboto", font_size=19, color=gate._text_color),
|
||||||
)
|
)
|
||||||
|
|
||||||
def on_event(self, event):
|
def on_event(self, event):
|
||||||
arcade.gui.UIManager.on_event(self.ui, event)
|
arcade.gui.UIManager.on_event(self.ui, event)
|
||||||
|
|||||||
Reference in New Issue
Block a user