egy hazafi Creative Commons License 2021.06.14 0 0 676

Igen, GDscript-ben írtam és olvastam is azt az oldalt.

Most így "oldottam meg" átmenetileg a problémát, de ez nyilván csak félmegoldás, mert kell lennie rá egy egy vagy kétsoros, sokkal egyszerűbb kódnak is:

 

func _process(delta):
if (Input.is_mouse_button_pressed(BUTTON_LEFT) and get_node("../jatekosrobotja/robotkarja/robotfegyvere").lohet==true):
if get_global_mouse_position().x<=position.x+32 and get_global_mouse_position().x>=position.x-32 and get_global_mouse_position().y<=position.y+32 and get_global_mouse_position().y>=position.y-32:
var l=lovedek.instance()
get_parent().add_child(l)
var robotkar=get_node("../jatekosrobotja/robotkarja")
var robotkarkep=get_node("../jatekosrobotja/robotkarja/robotfegyvere")
l.rotation_degrees=robotkar.rotation_degrees-180
#l.position.x=robotkar.position.x-robotkarkep.texture.get_size().x*cos(robotkarkep.robotkarirany)
#l.position.y=robotkar.position.y-robotkarkep.texture.get_size().y*sin(robotkarkep.robotkarirany)
#l.position.x=robotkar.position.x+cos(deg2rad(360-l.rotation_degrees))*robotkarkep.texture.get_size().x
#l.position.y=robotkar.position.y+sin(deg2rad(360-l.rotation_degrees))*robotkarkep.texture.get_size().y
match robotkarkep.robotkarirany:
90:
l.position.x=robotkar.position.x
l.position.y=robotkar.position.y-robotkarkep.texture.get_size().x
135:
l.position.x=robotkar.position.x-robotkarkep.texture.get_size().x+robotkarkep.texture.get_size().y
l.position.y=robotkar.position.y-robotkarkep.texture.get_size().y*2
180:
l.position.x=robotkar.position.x-robotkarkep.texture.get_size().x
l.position.y=robotkar.position.y+robotkarkep.offset.y
225:
l.position.x=robotkar.position.x-robotkarkep.texture.get_size().x+robotkarkep.texture.get_size().y/2
l.position.y=robotkar.position.y+robotkarkep.texture.get_size().y*1.5
270:
l.position.x=robotkar.position.x
l.position.y=robotkar.position.y+robotkarkep.texture.get_size().x
get_node("../TextureRect").lovedektomb.append(l)
robotkarkep.lohet=false
robotkarkep.lovidozito.wait_time=1
robotkarkep.lovidozito.start()

 

Annyit érdemes még tudni, hogy a robotkarkep sprite XY koordinátája nem középen vagy bal oldalon, hanem jobb oldalon van, hogy rendesen a kar tövétől lehessen elforgatni.

Előzmény: kisspetya (674)