Fix app crashes when touching bomb by passing correct type to `camera…#1928
Merged
pvcraven merged 1 commit intopythonarcade:maintenancefrom Nov 28, 2023
Merged
Conversation
….shake()`
TLDR;
* App crashes when touching a bomb with error.
* `AttributeError: 'tuple' object has no attribute 'x'`
* Made the following changes
* added `from pyglet.math import Vec2` to the top of the file
* passed `Vec2` to `camera.shake()` instead of tuple
* old line: `camera.shake((4, 7))`
* new line: `camera.shake(Vec2(4, 7))`
I initially thought this was intended behavior but I realized the app was actually just crashing.
The offending line was calling `camera.shake()` which according to it's definition in `./venv/lib/python3.11/site-packages/arcade/camera.py` expects a `Vec2` as it's argument which is being imported in that file with `from pyglet.math import Mat4, Vec2, Vec3` but the call to `camera.shake` was getting a `tuple` hence the `AttributeError`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR;
--
AttributeError: 'tuple' object has no attribute 'x'-- added
from pyglet.math import Vec2to the top of the file-- passed
Vec2tocamera.shake()instead of tuple---- old line:
camera.shake((4, 7))---- new line:
camera.shake(Vec2(4, 7))I initially thought this was intended behavior but I realized the app was actually just crashing.
The offending line was calling
camera.shake()which according to it's definition in./venv/lib/python3.11/site-packages/arcade/camera.pyexpects aVec2as it's argument which is being imported in that file withfrom pyglet.math import Mat4, Vec2, Vec3but the call tocamera.shake()was getting atuplehence theAttributeError.