luckyrawatlucky's Forum Posts

  • lionz see image now. its not simple because grid positions and number of grids are changeable. I don't want to calculate it manually.

  • I have sprite object "box" and I placed its instances in grid like image below. "box" has an instance variable and each box contains a value in its variable. what I want to do is when I click any box then I want to swap value in all boxes like this 1=2, 3=4, 5=7 I want to swap only edge box values. How can I do this?

    Tagged:

  • I created an object "objB" and loop through all the "objA" 4 times with position bboxTop, bboxBottom, bboxLeft, bboxRight and compare if objB overlap objA and objB picked cound < 2

    this is working.

  • I have instance in grid position (grid size is changeable).

    I want to pick those instance which doesn't have neighbor in any direction.

    How can I do this?

    any direction means. pick objects which has 3 side or 2 side or 1 side neighbor. but don't pick if it has all 4 neighbors.

  • You do not have permission to view this post

  • tween scale not working in Spriter.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • el3um4s

    its working

    Its my fault

    after I was upload HTML I was just refreshing and testing but I did not clicked inside canvas.

    Now code working.

    Thank you so much

  • Yes I tested your demo and its working but in my file its not

    I am testing in chrome browser.

    I also have a script in the eventsheet action block Is it the reason for not working?

    btw I attached my file

  • in Construct preview its working but when I upload its html5 to website then its not working and keys are working there in browser

    myfile

  • So I also set use Worker to NO ?

    update: I also tried with set Use Worker to No but still those keys are working

  • 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