Isometric tiles on wrong positions if the mouse points at a negative world coordinate

I am using this approach:

http://clintbellanger.net/articles/isometric_math/

Basically, you can calculate the iso coordinates based on the screen coordinates. What I am doing is, getting the actual world position the mouse is pointing at using get_mouse_global_position() and convert this position to isometric values.

Then I translate those coordinates back to world space coordinates to actually display the sprite.

Problem is, that when the world coordinates come from a negative position, the tiles get offset by almost an entire tile amount. Here is the relevant code.

The get_coord() function returns the actual world position of the tile used to display the Sprite

func get_coord(pos : Vector2):     var t = Vector2()     var e = screen_to_iso(pos)     t = iso_to_screen(e)     print(pos)     print(e)     print(t)     return t     pass var buildings  func screen_to_iso(pos :Vector2):     var flipx = 0     var flipy = 0     var t = Vector2()     var x_size = size/2     var y_size = size/4     t.x = int((pos.x/x_size) + (pos.y/y_size))/2     t.y = int((pos.y/y_size) - (pos.x/x_size))/2     return t     pass  func iso_to_screen(pos : Vector2):     var t = Vector2()     var x_size = size/2     var y_size = size/4     t = Vector2((pos.x-pos.y)*x_size, (pos.x+pos.y)*y_size)     return t     pass 

I can’t seem to figure out a way

Campaign in already existing world and story – fear of NPC domination

This is my first time running a campaign, with just some one-shots of experience.

I thought it would be easier for me to create a campaign in an already existing world that I know very well (World of Warcraft). However, since I would like for my players (who do not know the story at all) to experience the story and to follow some important characters, I fear that they might see their story and aventures as "secondary".

I definitely will allow them to change the story, apart from a few cases which I want to keep.

Do you have any tips on how to allow my players to experience the story arc of some important characters without giving them the feeling that it might not be "their" story and that they are not just spectating some NPCs?

Are any of the kingdoms/realms of the Forgotten Realms based on real world civilisations?

Have designers/writers for D&D ever cited explicit real world corolaries (current or historical) for any of the civilizations or peoples of the Forgotten Realms?

I’m looking at building a new character for an upcoming campaign and I think it would help me to role play better if I can contextualize it as a citizen of a real country or region.

How can gambling work in a world where magical divination is possible?

In a DnD 3.5 universe, could a spell such as Divination or Commune allow the caster to cheat at betting on sporting events? (For example, by asking a question like “Will Stan Stormbow win in this gladitorial match”).

Is there any in-universe way around this, such as a abjuration that could be cast on the arena to prevent such divinations?

How to seperate gui input from world input?

I have a GUI interface and a player that hase code to detect when the mouse is pressed.

When i mess with my GUI buttons the code for the player also fires off; an undesired behavior. The code in the player is meant for mining or using his current item not meant for buttons.

Some people have suggested using _unhandled_input and mouse filters, but i havent gotten either of those to work. Im just wondering what the common thing to do in the situation?

New World Factions Website – Community Website for Amazons upcoming MMO

New World is Amazon's upcoming MMO (release date early 2021). It includes a faction system where factions can compete for territories. This is a community website where players can create new factions or groups. Each group comes with its own private community forum.

https://www.newworldfactions.com/

Rotate Object in world space – Raytracing

I’m programming a C raytracing project.

I’ve been wanting to implement object rotations (square, cylinder) for several days but I can’t do it.

For each object, I have its position (x, y, z) in the world space and its 3d normalized orientation vector.

For the moment, I do nothing more than applying once of the three following functions on the 3d normalized orientation vector. I don’t know if I’m doing it right. Rotation doesn’t work well.

For example, I want to rotate my object left with the j key and right with the l key (x_rotation), up with the i key and down with the k key (y_rotation). I’m not sure how to use the z axis.

I’m starting to despair, can you please help me?

I will be very grateful for your help 🙂

t_vec       x_rotation(t_vec vec, float alpha) {     t_vec   res;      res.x = vec.x;     res.y = vec.y * cos(alpha) - vec.z * sin(alpha);     res.z = vec.y * sin(alpha) + vec.z * cos(alpha);     return (res); }  t_vec       y_rotation(t_vec vec, float alpha) {     t_vec   res;      res.x = vec.z * sin(alpha) + vec.x * cos(alpha);     res.y = vec.y;     res.z = vec.z * cos(alpha) - vec.x * sin(alpha);     return (res); }  t_vec       z_rotation(t_vec vec, float alpha) {     t_vec   res;      res.x = vec.x * cos(alpha) - vec.y * sin(alpha);     res.y = vec.x * sin(alpha) + vec.y + cos(alpha);     res.z = vec.z;     return (res); } 

Dungeon World Monster Attacks

  • Forgive me if this seems a total newbie question…I’m not that, and have played ‘solo’ DW with my partner for at least two years…we both have a number of level 3 characters who we run through non-GM’d scenarios we generate from various GM emulators and in the spirit of DW explore the world and find out what is happening. So intro over….few days ago we had visitors and took them through some scenarios and they immediately raised a point we had never considered……how do ‘monsters’ attack if the PC’s don’t engage in combat first.
  • Do they simply deal damage?
  • Do the PC’s defend? OR,
  • Do they use their attack moves (via the GM or in our case via our adherence to the fiction) and make a hack and slash move, or again do they simply deal damage? I appreciate this is maybe a simplistic question, but, we have never really thought about it before. Surely there is some mechanism outside the fiction that governs their method of determining whether an attack move on their part is successful?

About the complexity of deciding if the closed world assumption for renamable Horn CNF is consistent


Let $ T$ be a theory that only contains renamable horn formulas. What is the complexity of deciding if the closed world assumption $ CWA(T)$ is consistent?

The closed world assumption is defined as follows:

$ CWA(T):=T\cup \{\neg p : p\text{ is atom } T \not\models p\}$

Renamable horn formulas are CNF formulas that can be renamed to horn formulas by negating a variable in the formula for example

$ (x_1\vee x_2 \vee x_3)\wedge (\neg x_3 \vee\neg x_4)$

is not a horn formula but can be renamed by the renaming $ R=\{x_2,x_3\}$ to get the equally satisfiable formula

$ (x_1\vee \neg x_2 \vee \neg x_3)\wedge (x_3 \vee\neg x_4)$

My findings so far:

We call a theory $ \Phi$ of first order logic inconsistent if $ \exists \phi \in \Phi$ such that $ \Phi\models \phi$ and $ \Phi\not\models \phi$ . Otherwise $ \Phi$ is consistent.

To check whether $ CWA(T)$ is consistent it is sufficient to check if $ \Phi=\bigwedge_{\phi\in CWA(T)}\phi$ is satisfiable.

Algorithm to construct CWA:

To compute $ CWA(T)$ we need to know if $ T\models x_i$ for all variables in $ T$ . This can be done by considering $ \Psi=\bigwedge_{\psi\in T}\psi$ and then checking if $ \Psi \rightarrow x_i$ or equivalently $ \neg x_i \rightarrow \neg\Psi$ . Therefore if we set $ x_i=0$ in $ \Psi$ and $ \Psi$ is not satisfiable it follows $ T\models x_i$ , otherwise $ T\not\models x_i$ .

First create an set $ I=\{\emptyset\}$

For all variables defined by the index $ i=0,…,n$ we do the following calculation:

1.] set $ x_i=0$ in $ \Psi=\bigwedge_{\psi\in T}\psi$

2.] if $ \Psi$ is not satisfiable $ I=I\cup\{x_i\}$

By considering the elements of $ I$ we can conclude $ CWA(T)=T\cup\{\neg x_i:x_i\not\in I\}$ .

Deciding if CWA(T) is consistent is at least NP-hard:

let $ C_1,…,C_m$ be clauses of an arbitrary 3-SAT instance and $ C_{m+1}=(u\vee v)$ such that $ u,v$ are fresh atoms. Then $ T=\{C_1,…,C_m,C_{m+1}\}$ contains only renamable Horn clauses.

To decide if $ CWA(T)$ is consistent we need to decide if $ u$ is free for negation. This follows by checking if $ T\models u$ . Therefore we assume $ u=0$ and check if $ C_1\wedge C_2 \wedge … \wedge v$ is not satisfiable. Since v occurs in no other clause, the formula is not satisfiable if $ C_1\wedge … \wedge C_m$ is not satisfiable, but $ C_1\wedge … \wedge C_m$ is an arbitrary 3-SAT instance and so checking if $ CWA(T)$ is consistent is at least NP-hard.