Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | mustafamax |
I want the user to add blocks
Like a Minecraft game
Using this method described below
I can add the blocks but the opposite of the result I expect
Block Script
extends MeshInstance
export var my_x = "x"
export var my_y = "y"
export var my_z = "z"
var is_x = false
var is_y = false
var is_z = false
var _x = 0
var _y = 0
var _z = 0
#####################################
func _on_AreaTop_mouse_entered():
$SelectTB.visible = true
_y = $AreaTop.global_transform.origin.y
is_y = true
func _on_AreaTop_mouse_exited():
$SelectTB.visible = false
_y = global_transform.origin.y
is_y = false
func _on_AreaBottom_mouse_entered():
$SelectTB.visible = true
_y = -$AreaTop.global_transform.origin.y
is_y = true
func _on_AreaBottom_mouse_exited():
$SelectTB.visible = false
_y = -global_transform.origin.y
is_y = false
#####################################
func _on_AreaFront_mouse_entered():
$SelectFB.visible = true
_z = $AreaFront.global_transform.origin.z
is_z = true
func _on_AreaFront_mouse_exited():
$SelectFB.visible = false
_z = global_transform.origin.z
is_z = false
func _on_AreaBack_mouse_entered():
$SelectFB.visible = true
_z = -$AreaFront.global_transform.origin.z
is_z = true
func _on_AreaBack_mouse_exited():
$SelectFB.visible = false
_z = -global_transform.origin.z
is_z = false
#####################################
func _on_AreaRight_mouse_entered():
$SelectRL.visible = true
_x = $AreaRight.global_transform.origin.x
is_x = true
func _on_AreaRight_mouse_exited():
$SelectRL.visible = false
_x = global_transform.origin.x
is_x = false
func _on_AreaLeft_mouse_entered():
$SelectRL.visible = true
_x = -$AreaRight.global_transform.origin.x
is_x = true
func _on_AreaLeft_mouse_exited():
$SelectRL.visible = false
_x = -global_transform.origin.x
is_x = false
#####################################
func _process(delta):
if is_x || is_y || is_z:
print(_x, " :X")
print(_y, " :Y")
print(_z, " :Z")
Input.action_press(my_x, _x)
Input.action_press(my_y, _y)
Input.action_press(my_z, _z)
Script adding the block in the game
extends Spatial
var block = load("res://Block.tscn")
onready var world = $World
func _ready():
pass
func _input(event):
var x = get_viewport().get_mouse_position()[0]
var y = get_viewport().get_mouse_position()[1]
if Input.is_action_pressed("mouse_left"):
var block_x = Input.get_action_strength("x")
var block_y = Input.get_action_strength("y")
var block_z = Input.get_action_strength("z")
var blockInstance = block.instance()
blockInstance.transform.origin = Vector3(block_x, block_y, block_z)
add_child(blockInstance)
I ask those who have a solution to this problem to share with me the solution
The result of the code is higher