Godot Engine key-value based database

2018 04 22 No Comments

Hello
Here are you simple database for Godot Engine. I got inspired from this answer at godotengine qa.

func SetValue(key, value):
	var data = {key: value}
	var file = File.new()
	if file.open("user://shared_pref.sav", File.WRITE) != 0:
	    print("Error opening file")
	    return
	
	# Save the dictionary as JSON (or whatever you want, JSON is convenient here because it's built-in)
	file.store_line(to_json(data))
	file.close()


func GetValue(key):
	var file = File.new()
	if not file.file_exists("user://shared_pref.sav"):
	    print("No file saved!")
	    return
	
	# Open existing file
	if file.open("user://shared_pref.sav", File.READ) != 0:
	    print("Error opening file")
	    return
	
	# Get the data
	var data = {}
	data = parse_json(file.get_line())
	if data.has(key):
		return data[key]
	else:
		print(key, " [key] not assigned in saved_data")
		return 0

Save above file named Database.gd … To use it import like this:

onready var Database = preload("res://Database.gd").new()

Here you are ready to save values to database:

Database.SetValue("SomeValue", "test")
var foo = Database.GetValue("SomeValue")
print(foo)

Enjoy..

Godot Engine Android testing & publishing

2018 04 21 No Comments

Hey
I am writing these informations as a note. If I forgot the steps, I can look at this page..

Firstly Editor > Manage Export Templates. Download and install, that’s it.

Secondly in Editor > Editor Settings set these values:
– adb (download android studio and set path)
– jarsigner executable (download from version 8 and set jarsigner path)
– debug keystore

Last step is to set window.

Go Project > Project Settings > Display > Window
– Scroll to Strect section
– Set mode 2d(2d because I am working on 2d game)
– Aspect=expand.

So you can test now on your phone and see result.

To run game on your phone, enable usb debugging in your phone and connect usb cable. There will be Android icon next to Play Scene button.

More Godot Engine posts will be came..
<3 Godot Engine Happy coding.

React Native navigation

2018 02 27 2 Comments

Firstly

Install react-navigation

npm install react-navigation --save
react-native link

In App.js dont forget to import react-navigation

import React, { Component } from 'react';

import First from './First';
import Second from './Second';

import {
    StackNavigator,
} from 'react-navigation';
  

const App = StackNavigator(
    {
        First: { screen: First},
        Second: { screen: Second},
    },
    {
      initialRouteName: 'First',
    }
);

export default App;

First.js

import React, { Component } from 'react';
import {
  StyleSheet,
  View,
  Button
} from 'react-native';



import { NavigationActions } from 'react-navigation';

class First extends React.Component {
	static navigationOptions = {
	  title: 'First view',
	};
	render() {
	  const { navigate } = this.props.navigation;
	  return (
		<Button
		  title="Go second"
		  onPress={() =>
			navigate('Second', { name: 'test' })
		  }
		/>
	  );
	}
}


export default First;

Second.js

import React, { Component } from 'react';
import {
  StyleSheet,
  Text,
  View, Button
} from 'react-native';

class Second extends React.Component {
	static navigationOptions = {
	  title: 'Second',
	};
	render() {
	  const { navigate } = this.props.navigation;
	  return (
		<Button
		title="Go back"
		onPress={() => this.props.navigation.goBack()}
		/>
	  );
	}
}


export default Second;

Good luck.

How I start to code CSS

2017 09 10 No Comments

Hello,
Usually I am using these lines to start new project. It makes coding HTML easy.

/* ================== clearfix ================== */
.cf:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .c
.cf { display: inline-block; }
* html .cf { height: 1%; }
.cf { display: block; }

/* ================== useful ================== */
.cb {clear:both}
.dib {display: inline-block;}
.db {display: block;}
.fl {float: left;}
.fr {float: right;}

/* ================== box sizing ================== */
*, *:before, *:after {
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
}

*:focus {outline: none;}

Regards.

Unity3d grey screen in Asset store and services tabs

2016 12 17 No Comments

In Unity 5.4 there is a bug. Both Assets store and services tabs are not working.I dont know everyone has this problem.

Solution is dead simple. Just undock the section windows. And restart Unity3d, because in services section it can be shown “You do not have permission for this action” error.

Here is the problem:
screen-shot-2016-12-17-at-04-31-48

Solution:
screen-shot-2016-12-17-at-04-43-57

Unity3d DOTween creating sequence

2016 12 15 No Comments

dotween_logo

DOTween is one of the popular plugins in the Asset Store. It makes easier creating tweens and animations. Besides the Unity’s animation engine, Dotween is simple and useful. You can create tweens both with script or inspector easily.

Here you are sequence example in with DOTween:

Sequence Test_Sequence = DOTween.Sequence();
Test_Sequence.Append(Icon.transform.DOScale (new Vector3 (1.4f, 1.4f, 0), 0.1f));
Test_Sequence.Append(Icon.transform.GetComponent<Image>().DOColor(Color.red, 0.1f));
mySequence.Append(Icon.transform.DOScale (new Vector3 (1f, 1f, 1f), 0.1f));

Test_Sequence.AppendCallback(() => {
	// this is callback
	Debug.Log("Finished");
});
Test_Sequence.Play ();

For more examples click here.

Unity3D debugging on terminal

2016 12 14 No Comments

Sometimes we can need to debug the game on phone. It is best way to see the logs on phone is to watch app/game in terminal. In Unity3D we can do it simple:

Open terminal while your game running and be sure usb cable is plugged. Write these command:

adb logcat -s Unity

Here is the simple screenshot from my terminal:

screen-shot-2016-12-15-at-00-43-51

Cocos Creator button touch listener (javascript)

2016 06 15 2 Comments

Hi, today I am sharing cocos creator touch listener method. In creator, there is node.on() method to handle events.

/* button */
var button = cc.find("Canvas/Button")

if(button) {
    button.on(cc.Node.EventType.TOUCH_START, function () {
        // your codes.
    }, button)
}

JavaScript read file from url

2016 06 08 No Comments
function readTextFile(file) {

	var allText
	
    var rawFile = new XMLHttpRequest()
    rawFile.open("GET", file, false)

    rawFile.onreadystatechange = function ()  {
    	
        if(rawFile.readyState === 4) {
            if(rawFile.status === 200 || rawFile.status == 0)  {
                allText = rawFile.responseText;
                
            }
        }
    }
    rawFile.send(null);
    return allText
}

Usage

var file = readTextFile("file.txt")

Meteor event.target and event.currentTarget

2016 05 06 No Comments

In this, topic, I am gonna show you event.target and event.currentTarget difference.

For example we need a data value of clicked element. (more…)