luckyrawatlucky's Recent Forum Activity

  • 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:

  • 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?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • 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.

luckyrawatlucky's avatar

luckyrawatlucky

Member since 27 Aug, 2015

Twitter
luckyrawatlucky has 10 followers

Connect with luckyrawatlucky

Trophy Case

  • 9-Year Club
  • Entrepreneur Sold something in the asset store
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • x2
    Popular Game One of your games has over 1,000 players
  • x43
    Coach One of your tutorials has over 1,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • RTFM Read the fabulous manual
  • Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

23/44
How to earn trophies