luckyrawatlucky's Forum Posts

  • I didn't understand what I have to do exactly. As I don't know how code works.

    My problem is code is working in classic mode and keys disabled with this code but switch to module, Keys are not disabled.

    I am non-programmer I don't know even a single line of code. I just doing copy paste code to run it.

    Can you please update my code which will work with module setting?

  • I have a script file (main.js) which disable F1 to F12 keys and a script in action block ( window.parent.getNextGame("alphabet_game"); ) which calls external api (trigger a function of website)

    both were working fine unless I switched to script type "module"

    Now script in action block working fine but main.js file not working. If I switch back to classic the working fine. What I have to do to run this main.js file too.

    Please note that I have no programming skills and script I got from internet.

    // Put any global functions etc. here
    var shortcut = {
    	'all_shortcuts': {},//All the shortcuts are stored in this array
    	'add': function (shortcut_combination, callback, opt) {
    		//Provide a set of default options
    		var default_options = {
    			'type': 'keydown',
    			'propagate': false,
    			'disable_in_input': false,
    			'target': document,
    			'keycode': false
    		};
    		if (!opt) opt = default_options;
    		else {
    			for (var dfo in default_options) {
    				if (typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
    			}
    		}
    
    		var ele = opt.target;
    		if (typeof opt.target == 'string') ele = document.getElementById(opt.target);
    		var ths = this;
    		shortcut_combination = shortcut_combination.toLowerCase();
    
    		//The function to be called at keypress
    		var func = function (e) {
    			e = e || window.event;
    
    			if (opt['disable_in_input']) { //Don't enable shortcut keys in Input, Textarea fields
    				var element;
    				if (e.target) element = e.target;
    				else if (e.srcElement) element = e.srcElement;
    				if (element.nodeType == 3) element = element.parentNode;
    
    				if (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA') return;
    			}
    
    			let code;
    			//Find Which key is pressed
    			if (e.keyCode) code = e.keyCode;
    			else if (e.which) code = e.which;
    			var character = String.fromCharCode(code).toLowerCase();
    
    			if (code == 188) character = ","; //If the user presses , when the type is onkeydown
    			if (code == 190) character = "."; //If the user presses , when the type is onkeydown
    
    			var keys = shortcut_combination.split("+");
    			//Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
    			var kp = 0;
    
    			//Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
    			var shift_nums = {
    				"`": "~",
    				"1": "!",
    				"2": "@",
    				"3": "#",
    				"4": "$",
    				"5": "%",
    				"6": "^",
    				"7": "&",
    				"8": "*",
    				"9": "(",
    				"0": ")",
    				"-": "_",
    				"=": "+",
    				";": ":",
    				"'": "\"",
    				",": "<",
    				".": ">",
    				"/": "?",
    				"\\": "|"
    			};
    			//Special Keys - and their codes
    			var special_keys = {
    				'esc': 27,
    				'escape': 27,
    				'tab': 9,
    				'space': 32,
    				'return': 13,
    				'enter': 13,
    				'backspace': 8,
    
    				'scrolllock': 145,
    				'scroll_lock': 145,
    				'scroll': 145,
    				'capslock': 20,
    				'caps_lock': 20,
    				'caps': 20,
    				'numlock': 144,
    				'num_lock': 144,
    				'num': 144,
    
    				'pause': 19,
    				'break': 19,
    
    				'insert': 45,
    				'home': 36,
    				'delete': 46,
    				'end': 35,
    
    				'pageup': 33,
    				'page_up': 33,
    				'pu': 33,
    
    				'pagedown': 34,
    				'page_down': 34,
    				'pd': 34,
    
    				'left': 37,
    				'up': 38,
    				'right': 39,
    				'down': 40,
    
    				'f1': 112,
    				'f2': 113,
    				'f3': 114,
    				'f4': 115,
    				'f5': 116,
    				'f6': 117,
    				'f7': 118,
    				'f8': 119,
    				'f9': 120,
    				'f10': 121,
    				'f11': 122,
    				'f12': 123
    			};
    
    			var modifiers = {
    				shift: { wanted: false, pressed: false },
    				ctrl: { wanted: false, pressed: false },
    				alt: { wanted: false, pressed: false },
    				meta: { wanted: false, pressed: false }	//Meta is Mac specific
    			};
    
    			if (e.ctrlKey) modifiers.ctrl.pressed = true;
    			if (e.shiftKey) modifiers.shift.pressed = true;
    			if (e.altKey) modifiers.alt.pressed = true;
    			if (e.metaKey) modifiers.meta.pressed = true;
    			let k;
    			for (var i = 0; k = keys[i], i < keys.length; i++) {
    				//Modifiers
    				if (k == 'ctrl' || k == 'control') {
    					kp++;
    					modifiers.ctrl.wanted = true;
    
    				} else if (k == 'shift') {
    					kp++;
    					modifiers.shift.wanted = true;
    
    				} else if (k == 'alt') {
    					kp++;
    					modifiers.alt.wanted = true;
    				} else if (k == 'meta') {
    					kp++;
    					modifiers.meta.wanted = true;
    				} else if (k.length > 1) { //If it is a special key
    					if (special_keys[k] == code) kp++;
    
    				} else if (opt['keycode']) {
    					if (opt['keycode'] == code) kp++;
    
    				} else { //The special keys did not match
    					if (character == k) kp++;
    					else {
    						if (shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
    							character = shift_nums[character];
    							if (character == k) kp++;
    						}
    					}
    				}
    			}
    
    			if (kp == keys.length &&
    				modifiers.ctrl.pressed == modifiers.ctrl.wanted &&
    				modifiers.shift.pressed == modifiers.shift.wanted &&
    				modifiers.alt.pressed == modifiers.alt.wanted &&
    				modifiers.meta.pressed == modifiers.meta.wanted) {
    				callback(e);
    
    				if (!opt['propagate']) { //Stop the event
    					//e.cancelBubble is supported by IE - this will kill the bubbling process.
    					e.cancelBubble = true;
    					e.returnValue = false;
    
    					//e.stopPropagation works in Firefox.
    					if (e.stopPropagation) {
    						e.stopPropagation();
    						e.preventDefault();
    					}
    					return false;
    				}
    			}
    		};
    		this.all_shortcuts[shortcut_combination] = {
    			'callback': func,
    			'target': ele,
    			'event': opt['type']
    		};
    		//Attach the function with the event
    		if (ele.addEventListener) ele.addEventListener(opt['type'], func, false);
    		else if (ele.attachEvent) ele.attachEvent('on' + opt['type'], func);
    		else ele['on' + opt['type']] = func;
    	},
    
    	//Remove the shortcut - just specify the shortcut and I will remove the binding
    	'remove': function (shortcut_combination) {
    		shortcut_combination = shortcut_combination.toLowerCase();
    		var binding = this.all_shortcuts[shortcut_combination];
    		delete (this.all_shortcuts[shortcut_combination]);
    		if (!binding) return;
    		var type = binding['event'];
    		var ele = binding['target'];
    		var callback = binding['callback'];
    
    		if (ele.detachEvent) ele.detachEvent('on' + type, callback);
    		else if (ele.removeEventListener) ele.removeEventListener(type, callback, false);
    		else ele['on' + type] = false;
    	}
    };
    
    
    
    runOnStartup(async runtime => {
    	// Code to run on the loading screen.
    	// Note layouts, objects etc. are not yet available.
    	
    	//disable in PRODUCTION!
    	document.addEventListener('keydown', (event) => {
    		console.log(event);
    	});
    
    	runtime.addEventListener("beforeprojectstart", () => OnBeforeProjectStart(runtime));
    
    	shortcut.add("F1", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F2", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F3", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F4", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F5", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F6", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F7", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F8", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F9", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F10", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F11", function (e) {
    		e.preventDefault();
    
    	});
    
    	shortcut.add("F12", function (e) {
    		e.preventDefault();
    
    	});
    });
    
    function OnBeforeProjectStart(runtime) {
    	// Code to run just before 'On start of layout' on
    	// the first layout. Loading has finished and initial
    	// instances are created and available to use here.
    
    	runtime.addEventListener("tick", () => Tick(runtime));
    }
    
    function Tick(runtime) {
    	// Code to run every tick
    }
    
  • Hi

    One of my client has few requirements in game development. If anyone can do these task then let me know.

    below are the requirements detail they send to me. If you have any questions please ask here. They will reply here.

    Color game functionality requirement

    Magic Wand tools like Photoshop

    Zoom in or zoom out functionality

    • --Try to add two finger pinch zoom in canvas like photo zoom in mobile gallery.
    • --If pinch zoom not possible then add button for zoom in or zoom out in canvas frame.
    • --Add direction button for screen left right top bottom adjustment.
    • Save color image and load to play

    • --When we fill some color in canvas then save this image for play next time. This image saves in gallery. We play this save image in gallery option.
    • --Which colors images we save, then same color image are load in canvas with color.

    API

      Outline color image load in canvas by backend

    • --Admin can load images by admin panel in color game.
    • --Admin can load both single and combo image.
    • Price can add by admin panel for every single image and combo images.

    • --Free image and new image tag adding by admin panel on images(free, New, special)
    • --And title name add for every combo image and single images
    • Purchase combo images with payment option

    • --Create payment page for purchase images
  • How do I call api and load json data into array?

    for example

    I want to call api from (https://api.covid19api.com/summary)

    I used (https://www.youtube.com/watch?v=hw6U35J5EN0) this video to call api but in this example How do I load "countries" data into array?

    Tagged:

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • in website there is an alert functions

    I am calling that function from browser Console by typing window.getNextGame("This is alert")

    now how do I call this from construct 3 ?

    I am non-programmer

  • DiegoM

    If I create 2 hierarchy of same object then on "Create object" action when I tick "create hierarchy" then how can I choose which hierarchy to be created. there should a tag or name system for each hierarchy So we could create hierarchy with names or tags

  • if anybody knows

    How do I check in Spriter "if any animation is playing" or "if any animation is not playing" ?

  • hi lucid

    I am unable to add spriter object in hierarchy. As I select scml & another object then hierarchy option doesn't show in menu option.

    Request Feature

    spend earned money from Construct store to Construct Store. I have balance in my seller account. Instead of dong Cashout I want to spend that money on buying items in Construct Store. Do you have any planning for this feature?

  • does any one know ?

  • I have drawing canvas where user will draw multiple drawings and save & load it back

    When user draw something then I want to add a button to save that drawing so next time they can start drawing from where they left. But problem is currently I only able to save single drawing.

    How can I save multiple drawings with names So I can get that saved drawing from its name.

    I tried using inbuilt save & load action but that doesn't load drawing data.

    please help how to do this?

    Okay

    I was uploading my asset and by mistake I uploaded wrong c3p file Now I don't have options to delete it. Its say I can't change it once I published it.

    Tom

    is this place to post feedback? or bugs

  • can you explain it How its working?

    btw y axis also need to sort, On y1 there is no data So shift data of y2 to y1

  • I have data in array scattered but I want them something like this.

    How can I get this

    Tagged: