samsuffi's Forum Posts

  • Ok, great, thank you piranha305, it works perfectly! ^^

  • Thank you for your answer Ashley, I will try it but is it prudent to run my project on the last beta R139 version of Construct 3?

  • Thank you for your answer newt, too bad... I will increase the file size so. I understand that to put at maximum 60 Mo of image in the local storage should be a bad for the users memory. If you have an other solution, please tell me...

  • To reduce the size of my project, I would like to know how to save images from URL to the project's file and then, set the sprites images to project's file images:

  • I withdraw what I said, it's finally work on c3's runtime. This is incredible, thank you very much! ^^

  • Yes, thank you for your answer Eren... but I already tried and sadly, I use the construct 3's runtime (with JSON, Tween, BBCode) and the Rex plugins only work with the construct 2's runtime, so it don't works...

  • Actually, the only solution that I found is to add a HTML file to my project, then, use the AJAX plugin to set the HTML content of the plugin Iframe to:

    <!DOCTYPE html>
    <!--
    Copyright (c) 2016 Google Inc.
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    -->
    <html>
    <head>
     <meta charset=utf-8 />
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Email/Password Authentication Example</title>
    
     <!-- Material Design Theming -->
     <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.orange-indigo.min.css">
     <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
     <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script>
    
     <link rel="stylesheet" href="main.css">
    
     <!-- Import and configure the Firebase SDK -->
    	
     <script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script>
    <script>
     // Initialize Firebase
     // TODO: Replace with your project's customized code snippet
     var config = {
     apiKey: "<API_KEY>",
     authDomain: "<PROJECT_ID>.firebaseapp.com",
     databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
     projectId: "<PROJECT_ID>",
     storageBucket: "<BUCKET>.appspot.com",
     messagingSenderId: "<SENDER_ID>",
     };
     firebase.initializeApp(config);
    </script>
     <!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
     <!-- If you do not serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup -->
     <script src="/__/firebase/5.7.0/firebase-app.js"></script>
     <script src="/__/firebase/5.7.0/firebase-auth.js"></script>
     <script src="/__/firebase/init.js"></script>
    
     <script type="text/javascript">
     /**
     * Handles the sign in button press.
     */
     function toggleSignIn() {
     if (firebase.auth().currentUser) {
     // [START signout]
     firebase.auth().signOut();
     // [END signout]
     } else {
     var email = document.getElementById('email').value;
     var password = document.getElementById('password').value;
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START authwithemail]
     firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode === 'auth/wrong-password') {
     alert('Wrong password.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authwithemail]
     }
     document.getElementById('quickstart-sign-in').disabled = true;
     }
     /**
     * Handles the sign up button press.
     */
     function handleSignUp() {
     var email = document.getElementById('email').value;
     var password = document.getElementById('password').value;
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START createwithemail]
     firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/weak-password') {
     alert('The password is too weak.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END createwithemail]
     }
     /**
     * Sends an email verification to the user.
     */
     function sendEmailVerification() {
     // [START sendemailverification]
     firebase.auth().currentUser.sendEmailVerification().then(function() {
     // Email Verification sent!
     // [START_EXCLUDE]
     alert('Email Verification Sent!');
     // [END_EXCLUDE]
     });
     // [END sendemailverification]
     }
     function sendPasswordReset() {
     var email = document.getElementById('email').value;
     // [START sendpasswordemail]
     firebase.auth().sendPasswordResetEmail(email).then(function() {
     // Password Reset Email Sent!
     // [START_EXCLUDE]
     alert('Password Reset Email Sent!');
     // [END_EXCLUDE]
     }).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/invalid-email') {
     alert(errorMessage);
     } else if (errorCode == 'auth/user-not-found') {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END sendpasswordemail];
     }
     /**
     * initApp handles setting up UI event listeners and registering Firebase auth listeners:
     * - firebase.auth().onAuthStateChanged: This listener is called when the user is signed in or
     * out, and that is where we update the UI.
     */
     function initApp() {
     // Listening for auth state changes.
     // [START authstatelistener]
     firebase.auth().onAuthStateChanged(function(user) {
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-verify-email').disabled = true;
     // [END_EXCLUDE]
     if (user) {
     // User is signed in.
     var displayName = user.displayName;
     var email = user.email;
     var emailVerified = user.emailVerified;
     var photoURL = user.photoURL;
     var isAnonymous = user.isAnonymous;
     var uid = user.uid;
     var providerData = user.providerData;
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed in';
     document.getElementById('quickstart-sign-in').textContent = 'Sign out';
     document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');
     if (!emailVerified) {
     document.getElementById('quickstart-verify-email').disabled = false;
     }
     // [END_EXCLUDE]
     } else {
     // User is signed out.
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed out';
     document.getElementById('quickstart-sign-in').textContent = 'Sign in';
     document.getElementById('quickstart-account-details').textContent = 'null';
     // [END_EXCLUDE]
     }
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authstatelistener]
     document.getElementById('quickstart-sign-in').addEventListener('click', toggleSignIn, false);
     document.getElementById('quickstart-sign-up').addEventListener('click', handleSignUp, false);
     document.getElementById('quickstart-verify-email').addEventListener('click', sendEmailVerification, false);
     document.getElementById('quickstart-password-reset').addEventListener('click', sendPasswordReset, false);
     }
     window.onload = function() {
     initApp();
     };
     </script>
    </head>
    <body>
    <div class="demo-layout mdl-layout mdl-js-layout mdl-layout--fixed-header">
    
     <!-- Header section containing title -->
     <header class="mdl-layout__header mdl-color-text--white mdl-color--light-blue-700">
     <div class="mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-grid">
     <div class="mdl-layout__header-row mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-cell--8-col-desktop">
     <a href="/"><h3>Firebase Authentication</h3></a>
     </div>
     </div>
     </header>
    
     <main class="mdl-layout__content mdl-color--grey-100">
     <div class="mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-grid">
    
     <!-- Container for the demo -->
     <div class="mdl-card mdl-shadow--2dp mdl-cell mdl-cell--12-col mdl-cell--12-col-tablet mdl-cell--12-col-desktop">
     <div class="mdl-card__title mdl-color--light-blue-600 mdl-color-text--white">
     <h2 class="mdl-card__title-text">Firebase Email &amp; Password Authentication</h2>
     </div>
     <div class="mdl-card__supporting-text mdl-color-text--grey-600">
     <p>Enter an email and password below and either sign in to an existing account or sign up</p>
    
     <input class="mdl-textfield__input" style="display:inline;width:auto;" type="text" id="email" name="email" placeholder="Email"/>
     &nbsp;&nbsp;&nbsp;
     <input class="mdl-textfield__input" style="display:inline;width:auto;" type="password" id="password" name="password" placeholder="Password"/>
     <br/><br/>
     <button disabled class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-sign-in" name="signin">Sign In</button>
     &nbsp;&nbsp;&nbsp;
     <button class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-sign-up" name="signup">Sign Up</button>
     &nbsp;&nbsp;&nbsp;
     <button class="mdl-button mdl-js-button mdl-button--raised" disabled id="quickstart-verify-email" name="verify-email">Send Email Verification</button>
     &nbsp;&nbsp;&nbsp;
     <button class="mdl-button mdl-js-button mdl-button--raised" id="quickstart-password-reset" name="verify-email">Send Password Reset Email</button>
    
     <!-- Container where we'll display the user details -->
     <div class="quickstart-user-details-container">
     Firebase sign-in status: <span id="quickstart-sign-in-status">Unknown</span>
     <div>Firebase auth <code>currentUser</code> object value:</div>
     <pre><code id="quickstart-account-details">null</code></pre>
     </div>
     </div>
     </div>
    
     </div>
     </main>
    </div>
    </body>
    </html>
    
  • I wanted to link my game to firebase, and saw firebase's documentation, then

    I added this script in javascript to my game:

     /**
     * Handles the sign in button press.
     */
     function toggleSignIn() {
     if (firebase.auth().currentUser) {
     // [START signout]
     firebase.auth().signOut();
     // [END signout]
     } else {
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START authwithemail]
     firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode === 'auth/wrong-password') {
     alert('Wrong password.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authwithemail]
     }
     document.getElementById('quickstart-sign-in').disabled = true;
     }
     /**
     * Handles the sign up button press.
     */
     function handleSignUp() {
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START createwithemail]
     firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/weak-password') {
     alert('The password is too weak.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END createwithemail]
     }
     /**
     * Sends an email verification to the user.
     */
     function sendEmailVerification() {
     // [START sendemailverification]
     firebase.auth().currentUser.sendEmailVerification().then(function() {
     // Email Verification sent!
     // [START_EXCLUDE]
     alert('Email Verification Sent!');
     // [END_EXCLUDE]
     });
     // [END sendemailverification]
     }
     function sendPasswordReset() {
     var email = document.getElementById('email').value;
     // [START sendpasswordemail]
     firebase.auth().sendPasswordResetEmail(email).then(function() {
     // Password Reset Email Sent!
     // [START_EXCLUDE]
     alert('Password Reset Email Sent!');
     // [END_EXCLUDE]
     }).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode == 'auth/invalid-email') {
     alert(errorMessage);
     } else if (errorCode == 'auth/user-not-found') {
     alert(errorMessage);
     }
     console.log(error);
     // [END_EXCLUDE]
     });
     // [END sendpasswordemail];
     }
     /**
     * initApp handles setting up UI event listeners and registering Firebase auth listeners:
     * - firebase.auth().onAuthStateChanged: This listener is called when the user is signed in or
     * out, and that is where we update the UI.
     */
     function initApp() {
     // Listening for auth state changes.
     // [START authstatelistener]
     firebase.auth().onAuthStateChanged(function(user) {
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-verify-email').disabled = true;
     // [END_EXCLUDE]
     if (user) {
     // User is signed in.
     var displayName = user.displayName;
     var email = user.email;
     var emailVerified = user.emailVerified;
     var photoURL = user.photoURL;
     var isAnonymous = user.isAnonymous;
     var uid = user.uid;
     var providerData = user.providerData;
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed in';
     document.getElementById('quickstart-sign-in').textContent = 'Sign out';
     document.getElementById('quickstart-account-details').textContent = JSON.stringify(user, null, ' ');
     if (!emailVerified) {
     document.getElementById('quickstart-verify-email').disabled = false;
     }
     // [END_EXCLUDE]
     } else {
     // User is signed out.
     // [START_EXCLUDE]
     document.getElementById('quickstart-sign-in-status').textContent = 'Signed out';
     document.getElementById('quickstart-sign-in').textContent = 'Sign in';
     document.getElementById('quickstart-account-details').textContent = 'null';
     // [END_EXCLUDE]
     }
     // [START_EXCLUDE silent]
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authstatelistener]
     document.getElementById('quickstart-sign-in').addEventListener('click', toggleSignIn, false);
     document.getElementById('quickstart-sign-up').addEventListener('click', handleSignUp, false);
     document.getElementById('quickstart-verify-email').addEventListener('click', sendEmailVerification, false);
     document.getElementById('quickstart-password-reset').addEventListener('click', sendPasswordReset, false);
     }
     window.onload = function() {
     initApp();
     };
    

    But I need to add this HTML script to preview my project on my browser:

    	<html>
    <meta charset=utf-8 />
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Email/Password Authentication Example</title>
    
     <!-- Material Design Theming -->
     <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.orange-indigo.min.css">
     <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
     <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script>
    
     <link rel="stylesheet" href="main.css">
    
     <!-- Import and configure the Firebase SDK -->
    	
    <script src="https://www.gstatic.com/firebasejs/5.8.4/firebase.js"></script>
    <script>
     // Initialize Firebase
     // TODO: Replace with your project's customized code snippet
     var config = {
     apiKey: "<API_KEY>",
     authDomain: "<PROJECT_ID>.firebaseapp.com",
     databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
     projectId: "<PROJECT_ID>",
     storageBucket: "<BUCKET>.appspot.com",
     messagingSenderId: "<SENDER_ID>",
     };
     firebase.initializeApp(config);
    </script>
     <!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
     <!-- If you do not serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup -->
     <script src="/__/firebase/5.7.0/firebase-app.js"></script>
     <script src="/__/firebase/5.7.0/firebase-auth.js"></script>
     <script src="/__/firebase/init.js"></script>
    
     <script type="text/javascript">
    <head>
     /**
     * Handles the sign in button press.
     */
     function toggleSignIn() {
     if (firebase.auth().currentUser) {
     // [START signout]
     firebase.auth().signOut();
     // [END signout]
     } else {
     var email = document.getElementById('email').value;
     var password = document.getElementById('password').value;
     if (email.length < 4) {
     alert('Please enter an email address.');
     return;
     }
     if (password.length < 4) {
     alert('Please enter a password.');
     return;
     }
     // Sign in with email and pass.
     // [START authwithemail]
     firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
     // Handle Errors here.
     var errorCode = error.code;
     var errorMessage = error.message;
     // [START_EXCLUDE]
     if (errorCode === 'auth/wrong-password') {
     alert('Wrong password.');
     } else {
     alert(errorMessage);
     }
     console.log(error);
     document.getElementById('quickstart-sign-in').disabled = false;
     // [END_EXCLUDE]
     });
     // [END authwithemail]
     }
     document.getElementById('quickstart-sign-in').disabled = true;
     }
    </head>
    		<body>
    
    		</body>
    	</html>
    

    Please, help me, I'm poor so I can't to by this wonderful plugin:

    chadorirebornxd.itch.io/construct-master-collection

    And I don't want to permanently export my project to get the index.html file and modifie the <head> section...

  • I finally solved the problem! For all the user had the same problem with google chrome: please check your google chrome's settings in "chrome://settings". Next of that, click the + Show advanced settings button, in the System section, ensure the Use hardware acceleration when available checkbox is checked (you'll need to relaunch Chrome for any changes to take effect). My checkbox was unchecked, and now, it works fine!

  • Hello everybody,

    I have a problem when I'm on the construct3's editor of layout. When I'm scrolling or zooming, there is a lag (10FPS or less). This problem started when I use Construct 3 on my new computer. It's certainly a problem of hardware. Is it a solution to solve that?

    New computer:

    -OS: Windows 7

    -Processor: I5-2400 3.10GHz (quadcore)

    -System: 64 bits

    -RAM: 8 Go

    -Graphic card: AMD Radeon R9 200 Series (My last pc had an Nvidea's Graphic Card and worked fine)

    Thank for reading

    Solution to the next reply

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hello HayateX,

    I'm so sorry that my solution don't works for you... And it reveals a very bad new for all the mobile's developpers. I hope that Google chrome solves this problem fast but until now, no answer...

    However, my solution consisted in forcing WeGL2 to change to WebGL1. If it don't works for you, we can suppose now that some effects in Construct 2/3 aren't supported by mobiles at all. But which ones?

    Complicated... Is there an other solution to make effects in construct without WebGL and plugins?

  • Sonste

    Hello,

    I finally found a solution by checking this forum:

    https://www.construct.net/fr/forum/construct-3/general-discussion-7/force-webgl1-135173

    But let's me recap the process:

    1: Export your project NOT minified with cordova to an Android studio project

    2: In your folder, follow this path app\src\main\assets\www

    3: Open the file C2runtime.js with Notepad

    4: In Notepad, go to Edit, Search

    5: Search this line:

    this.gl.getParameter(this.gl.VERSION).indexOf("WebGL 2") === 0

    Replace by this:

    this.gl.getParameter(this.gl.VERSION).indexOf("WebGL") === 0

    6: By the same process, replace this line:

    this.canvas.getContext("webgl2", attribs)

    by this:

    this.canvas.getContext("webgl", attribs)

    7: Then, import your project in Android Studio, build it and generate a signed apk with your keystore

    Sadly, according to the Scirra's team, this bug came by Google Chrome who blacklisted WebGL2 for some devices. I wrote a message to them to find a solution by allow all the devices to get WebGL2. For now, we have to agree to repeat this procedure for all our mobile games using Admob...

    Anyway, thanks all lot for the community, you're awesome

  • Hello, yes, you can. Try to make a family of your 23 objects by clicking on the family folder in your project. And, in the event sheet, use this family like an only one object to do actions and conditions.

  • Thank you for your answer. I finally found the file "c2runtime.js", changed the line to fix webGL 1, exported with Android studio to generate a signed apk file. But nothing change... When the ad is loading, black screen but I can hear the sounds of the game.

  • Thank you for your answer. But I tested my game on Asus devices. I saw the discussion about WebGL1 but I don't know how to change the runtime in construct 3 to force WebGL1. Where is it?