Comments (2)
I think I've narrowed down the issue to 2 things.
Firstly, if you look at the boxcast function, you'll see that it reuses the same _boxcast_box variable to measure all its collisions.
This is done for optimization reasons, there is, however, a problem here. There are some properties, I think something to do with the look_at function, that persist between boxcast calls. This makes it so that subsequent calls are affected by previous ones.
In the boxcasts function, I changed line 24 from _boxcast_box.look_at(origin + direction)
to _boxcast_box.lookAt(origin + direction)
, and it seemed to fix it. The lookAt function, is a panda3d function that the Entity class inherited. This isn't a final fix, just a possible indicator that the problem might lie in the look_at function.
There is also a broader issue, that has to do with coding standards. The issue is that the boxcast function isn't pure, which is a problem if it's a static function. I would suggest 2 approaches to fixing this from a best practices point of view. The first would to be just simply make boxcast a class, and then create an instance for ray you want to cast, and have the memory be properly managed within the class. The second would be to have the boxcast function recreate the _boxcast_box variable inside its function scope each time, and give the programmer the option to pass in their own _boxcast_box variable, that is reused, if they wished to save memory.
from ursina.
I think there might be some unforeseen consequences when calling the boxcast function
Here you call the look_at, but you don't pass an up parameter in.
Lines 23 to 25 in c587be2
In the function, it then uses the entities up, instead of a passed in up
Lines 943 to 946 in c587be2
from ursina.
Related Issues (20)
- Ursina cannot open monitor under Docker
- Graphics issues when converting to .exe HOT 2
- Ursina Build too little info HOT 1
- i am getting this error while adding the code snippet for inventory to my game. can someone explain it? HOT 4
- Loading issue for settings.py HOT 3
- Feature - allow the Audio class to allow .mp3 files. HOT 1
- Remove all entities HOT 1
- RTL language support (Persian/Farsi)
- Can't use pyinstaller to ursina HOT 4
- how to load multi textures for one model HOT 1
- Cannot build to exe because of module not found error HOT 2
- how to optimize gaem
- FirstPersonController sees through entities because of shaders HOT 2
- turn string to Vec3
- Cyrillic print in ingame console.
- Setting mouse.visible = False in borderless mode causes client window to snap back to original location HOT 1
- Operation of color.rgb() HOT 2
- Some Errors in the documentation
- Issues with cursor scale on Mac
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ursina.