2 years ago

I just found out Godot doesn't seem to have any native way to display windows message boxes.

It DOES have one for alerts (the ones that only give "ok" as an option).

but I want multiple-choice, so I had to use powershell, I'll explain in Article :3


Tbh this is something I've had problems with for a WHILE now. It's really annoying that there's no native way for this :(

Well first we'll have to write an empty "output" array for the OS.execute() to fill

		
			var output = []
		
	

after which, we have to execute the powershell script to display said MessageBox

		
			OS.execute("powershell.exe", ["-Command", "Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox]::Show('Body', 'Title', '3','16')"], output)
		
	

let me explain with the little knowledge I have of powershell...

"-Command" opens powershell with the intent to execute code.

"Add-Type -AssemblyName PresentationFramework;[System.Windows.MessageBox] creates everything that's needed to actually use the messagebox.

::show is the messagebox's argument to actually show itself...

and for the arguments within show, I recommend looking at THIS <- Click Webpage, It explains everything pretty well :D

after it has been opened, we need to actually check what the user has clicked, which is where the afformentioned "output" variable comes in.

if we check output by printing it after

		
			print(output)
		
	

we can see that output[0] contains either Yes\r\n, No\r\n, or Cancel\r\n

the \r and \n are escape characters, don't worry about it, that shouldn't change anyway.

\r is Carriage return and \n is Newline.

anyway, after that we can match output[0] like so:

		
			match output[0]:
	"Yes\r\n":
		print("The user has ACCEPTED the Prompt")
	"No\r\n":
		print("The user has DECLINED the Prompt")
	"Cancel\r\n":
		print("The user has CANCELED the Prompt")
		
	

and there's your itty bitty textbox :3



5 comments

Loading...

Next up

A quick look at Ryn: And the thread of Life, our game in development, platforms and traps in action.

#gamedev #indiedev #godot

Hyperslice releases on January 16 (yes in just 2 days!) on Steam and Itch 🎉 ⚡ Hyperslice is a fast paced arena roguelite where your only weapon is your dash!

Wishlists appreciated 🥰 (Demo available on Steam and here) https://s.team/a/2977820

Here's the last two attacks for Augusto! First we have a spinning charge, then a foot claw swipe if you get too close.

Did you know that today is #InternationalJazzDay? 🎷😎

No? 😯 Well, we couldn't pass up this date!

And what better to celebrate this day than #Pecaminosa #OST? 🎷

Let us know what you think about it and have a great weekend!

So

i may or may not make an full art of some person or i may just leave this like that-

Path of Kami: The Evolution of the Lore

Quantum precognition is one of the most powerful cards. End game cards & equipment. Demo/alpha build boss is no match for this deck.

Shuiro Haname. #Commission

Commission for @ShuHaname

Today I tackled drawing different variations of facial expressions for one of the main characters in Eden. What do you think of it? :) Eden: https://gamejolt.com/games/Eden/592698

Regional Bulbasaur. #Pokemon