Forum Replies Created
- 
		AuthorPosts
 - 
		
			
				
August 12, 2018 at 10:23 am in reply to: Bug or not ? 2 times using a (mouse) event = ignoring both #15289
H! Mark,
Last time we spoke/I use monkey was about a year ago, I see that you make good steps
My code still works !, except for this bug above.
Can you give me the status about this problem above (because in the latest version its still the same problem), so I can decide what to do.Greetings,
GCMartijn@mark
I started with gamemaker 1 years ago, but that was for children
Then I found BlitzBasic and ‘learned’ how to create games.
But i’m not a artist (like many users) and never finished a game.After that, Monkey 1 gives some new power, but again (i’m not a graphic designer) and never finished a game.
But I din’t care about that, because it was fun to create some game concepts.Then Monkey 2 same story, but this time it was giving me hope.
I had the feeling that you where creating a new language that was solid as a rock, and not just for games.
Like a new Python or Haxe, and yes it was but you did not understand the marketing power.Many good products are failed because poor marketing.
Some important mistakes. Maybe i’m wrong but this is my feeling.
– To place it under a subdomain (and now by using a .co.nz domain)
– To use a ‘static’ dark webdesign
– Users have a feeling that you don’t make some decisions (a solid roadmap) (there was one in the first year)
– The name, its fun but goodBut there is hope (or something you can test) !
Stop now with programming, and invest that time in:Step 1
– find a new short easy name, that is available as a .com domain OR .io domain
– create a fresh (white) website, look at other sites that are successful https://nodejs.org
– at the frontpage don’t add your blog items, but highlight why people need to use ‘new name’
– say that its faster (maybe do some benchmarks !)If you can’t do Step 1, then it don’t get new users
Step 2
Again stop with investing in ‘new name’, and invest that time in:
– create some demo game examples (and post that on steam/ios/android)
(maybe you earn some money, but you can show it on the new site)Step 3
Check your stats, do you get more hits on your new website ?
Yes > than you are on the right path
No > add your website to site’s, make a plan about that. maybe adwords for 0.05 $Step 4
Earn money (you can try that with step 2), but if you get more hits (more users).
– Try to make a ‘new name’ Pro version.
This comes with some cool features and cost $ 50,- a year
– Add a button on the site ‘Pro support’ , $ 50,- for one hour (you)What I’m saying is this:
You made good products, and many people like them (I do), but you can’t ‘sale’ them.
New users look at 3 things:
1) Is this new language I need to learn fast and solid ? (benchmark, say it)
2) Is it easy to learn? (documentation)
3) Does it support win/mac/linux/ios/android (maybe I don’t need it all now, but maybe later)All those things are not oke for new users that visit this .co.nz site now.
I hope, that you can and will do this, so after that you can invest in ‘new name’ again.
So the keywords are:
Fresh start, new name, clean better site and domain, marketing, marketing, marketing, roadmap, statement.
I will say make a combination with new year 2019 !Hey that looks almost the same I’m making haha
MX2
Maybe there are some more cool libs out there on the internet with free licences.
Maybe its a cool idea to create the first official MySQL connector, so database connection can be made with it to store online stats !With all those official external libs support MX2 will be better then some other languages.
@mark
copy / pasting your code I can see the progress dialog !
the progessbar not ‘moving’, and I see now that it don’t support the step/value
BUT
The text is changing like I was hoping, so I/user can see what is loading.
Monkey12345678910111213Function Yield(progressText:String=Null)Local future:=New Future<Bool>App.Idle+=Lambda()future.Set( True )Endfuture.Get()If progressText<>Null Thenprogress.Text = progressTextEndEndBut you say a fiber is not a async and not a background task.
But what is it, where does it live.If you say yes to this, then I understand it.
> Inside the Yield() function above, I can change every runtime variable, this within a loop or process that is running at the moment ?Function BlockingHeavyThing()
yield(“heavything() start”)
heavything()
yield(“start heavything2()”)
heavything2()
EndRenderloop {
New Fiber( Lambda()
BlockingHeavyThing()
End )DOESstartThisAfter_BlockingHeavyThing_isReady() ‘ duh
}
I see this in your code
Monkey123App.Idle+=Lambda()future.Set( True )EndDoes App.Idle resets itself after a loop ?
Because when I load 1000+ things I get internal 1000+ App.Idle+=things I don’t know if this is a problem.What future does is abracadabra (I did read the module info about it) but for now it works with the text.
I think that in the near future you need to make the gui async , on a other thread or something if you want that many people make applications with monkey.
@AdamStrang
That’s is not possible I think because
Everything is rendered on the screen after that the LoadScene() is ready.
LoadScene includes only JsonObject.Load() , object generation, image (atlas) loadingBut async LoadScene() would be the thing needed here for a method.
Simply fiber using don’t work, or I don’t understand how a Fiber works
Monkey1234567891011121314151617181920Method createStartupScreen:Void()Local button:=New Button("Start")button.Clicked=Lambda()Local progress:=New ProgressDialog( "Modeless Progress Dialog","Performing incredibly intense calculations..." )progress.Open()' progressbar not visible yetNew Fiber( Lambda()LoadScene()End )' progressbar visible after LoadScene is readyEndLocal dockingView:=New DockingViewdockingView.AddView( button,"top" )App.ActiveWindow.ContentView=dockingViewEndAnother possible idea was a function like this.
progressbar.Ready += LoadScene()
Monkey1progress.Open()That is that the progressbar is visible now at the screen and can retrieve .Text changes callable from outside the LoadScene()
To say it in other words, When I put the loaders inside a Fiber then its async ?
I can see a Fiber lick a backgroundworker for c#
Going to try that.
But I see the progressbar after everything is loaded.
In the mojox modules/test Mark Does the same.
Monkey123456789101112131415161718192021222324252627282930' returns' 0 = no collision' 1 = line collion' 2 = point insideFunction PolyCollision:Int(polypoints:Float[],x:Float,y:Float)Local j:Int = polypoints.Length-2Local cn:Int = 0Local cn2:Int = 0For Local i:Int=0 Until polypoints.Length Step 2If i<=polypoints.Length-3 And (((polypoints[i+1] <= y) And (polypoints[i+3] > y)) Or ((polypoints[i+1] > y) And (polypoints[i+3] <= y))) ThenLocal vt:Float = (y - polypoints[i+1]) / (polypoints[i+3] - polypoints[i+1])If (x < polypoints[i] + vt * (polypoints[i+2] - polypoints[i])) Thencn = 1 ~ cnEndElseif (polypoints[i+1]<y And polypoints[j+1]>=y) Or (polypoints[j+1]< y And polypoints[i+1]>=y)If (polypoints[i]<=x Or polypoints[j]<=x)If (polypoints[i]+(y-polypoints[i+1])/(polypoints[j+1]-polypoints[i+1])*(polypoints[j]-polypoints[i])<x)cn2 = 1 ~ cn2EndifEndifEnd' corners at the bottemIf polypoints[i]=x And polypoints[i+1]=y Thencn = 1 ~ cnEndj=iNextReturn (cn&1)+(cn2&1)End FunctionI use that one, I dunno which one is faster.
September 29, 2016 at 7:25 pm in reply to: #Import "assets/something" why import lines for this ? #4157What does the jsonvalue.save() do ?
But note that if you’re trying to write something that runs everywhere, assets may not even be stored in the filesystem (eg: on android they’re stored in a zip), so it’s safest to use ‘asset::’
I need to store save files and other files on all devices (future proof) so first I thought this is the way:
Monkey1234567891011121314151617181920212223242526272829#Import "<std>"#Import "assets/"Using std..Function Main()' reading using the asset::syntax' =====================================================Local obj:=JsonObject.Load("asset::data-world1.json")If Not objPrint "No json data filea"ReturnEndPrint obj.ToJson()' =====================================================' ingame 'editor' or save file that is write json data' =====================================================Local json_data:JsonObject = New JsonObject()json_data["test"] = New JsonString("bla")'Print json_data.ToJson()json_data.Save("asset::data-world1.json") ' don't work' json_data.Save("assets/data-world1.json") ' don't work' f_data.WriteString(json_data.ToJson()) ' probably work, but is it needed ?' =====================================================' don't write to that asset , and no errorEndIn other words, what is the best path to save files so it works on all clients devices/desktop
In the example above I’m trying to overwrite the official data-world1.json file with new data.
What is the path to do that for all devices/desktopI Made a png to polygon module, maybe you can use that. Its inside the Ted module manager.
Maybe I’m going to work on my C2MX2 ‘converter’ again in the future.
Maybe you are searching this. (its a year old, and not up to date with the current MX2)https://github.com/gcmartijn/C2MX2
@Mark
I wait till there is a little info about it in module docs
Edit:
Well the banana did give all the things I need yet, so no docs needed at the moment
@Simon Armstrong
Will check if I can use it, thanks
 - 
		AuthorPosts