## c ++ – Initiate development for a desktop app (like a standalone music player).

1. Decide in which language you want to write the application.
2. Make sure you know these programming languages.
3. If you don't know the languages, learn them. Either take part in lessons or do it yourself. The internet is full of tutorials to choose from.
4. Write the application only with the basic functions.
5. Add features to the existing application.

Note: A music player (or worse, a video player) may not be an easy project for someone who doesn't know programming languages ​​("currently learning C ++") and doesn't know how to "work in development" "".

## dnd 5e – How can a Lich lock a player in during a fight?

### You do not have to limit the Lich to the specified spell list

Access to the magical is obviously crucial for the continued existence of a Lich:

A lich must regularly feed souls to his phylactery to maintain the magic that preserves his body and consciousness. This is done with the sticky spell. (..) A Lich that fails or forgets to keep its body with sacrificed souls begins to fall apart physically and can eventually become a Demilich.

However, you have noticed that prisoners are somewhat bizarrely not on the Lich's magic list. What now?

You don't just have to restrict the Lich's access to spells using the spell list provided. This is implied in the MM:

Magical collectors. Lichen collect spells and magical items. In addition to his magic repertoire, Lich has direct access to potions, scrolls, libraries of magic books, one or more magic wands and maybe one or two wands.

Lichen is the remains of great magicians. So if you think you need a justification for making changes to the template, you as DM can decide to create your spell list from your spell library just like a spell PC would.

After all, I can't tell you why the detention wasn't originally on the Lich's magic list, but assuming it's a simple oversight and you either add or replace it, nothing gets out of balance.

After all, at 1 minute cast time, it's not a spell useful in combat (it would take 10 turns to cast), so it wouldn't affect the CR in any way.

## C # – Problems with the camera following the player and rotating in unity with the mouse

I am a noob developer who only started developing games a few days ago. So don't talk to me about rocket science.
Anyway, I'm trying to get the camera to follow the player wherever it goes AND turning when I right-click and move it.
The camera follows the player and turns, but the rotation is not around the player.
Here is the code:

& # 39; & # 39; & # 39;
public class FollowPlayer: MonoBehaviour
{
public swimmer sensitivity = 10;
public GameObject player;
public Vector3 offset;
float RotateVerticlal, RotateHorizontal;
void start ()
{

``````}
private void Update()
{
if(Input.GetKey(KeyCode.Mouse1))
{
RotateHorizontal = Input.GetAxis("Mouse X");
RotateVerticlal = Input.GetAxis("Mouse Y");
}
else
{
RotateHorizontal = 0;
RotateVerticlal = 0;
}
}
void LateUpdate()
{
transform.RotateAround(Player.transform.position, -Vector3.up, RotateHorizontal * Sensitivity);
transform.RotateAround(Vector3.zero, transform.right, RotateVerticlal * Sensitivity);
transform.position = Player.transform.position + Offset;
//transform.LookAt(Player.transform);
}
``````

& # 39; & # 39; & # 39;
Note that the camera moves around the player when I move the & # 39; & # 39; & # 39; transform.position = Player.transform.position + offset & # 39; & # 39; comment out (a bit funny I would say, but at least it works).

## Unit – How can the speed be increased or increased at every 500 m away from the player?

`I'm actually a beginner,
and I create an endless runner game.
I want to increase the speed when the player has covered the distance and the speed should change every 500 meters
Any kind of idea to implement this kind of logic

``````speed=10;
``````

// as soon as the player reaches 500 m away
// speed should be increased

There should be a continuous process every 500 m

## Unity – How do I get the player to collide with another object to use as a border?

I'm trying to make a simple game where you move a ball left / right and avoid dice falling. If a die touches the player (ball), the player dies. I try to set boundaries with a cylinder with a collider, but every time I hit the collider boundary the player disappears like a dice. Here is my player script:

``````using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour
{
public float moveSpeed = 1;

// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame
void Update()
{

transform.position += new Vector3(Input.GetAxis("Horizontal") * moveSpeed, 0, 0);
}

void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Cube")
Destroy(collision.gameObject);
Destroy(gameObject);
}
``````

}}

## Unit – How do I set a recoil timer so that my player is not damaged immediately after the first damage?

So I have a player who is harmed by the SendMessage feature, but the problem is that there is no delay between setbacks so the enemy can hit my player three times per hit, and that's kind of annoying. Here is my player's combat controller script:

``````using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCombatController : MonoBehaviour
{
(SerializeField) private bool combatEnabled;
private bool gotInput;
private bool isAttacking;
private bool isFirstAttack;

(SerializeField) private float inputTimer;
private float lastInputTime = Mathf.NegativeInfinity;
public float attack1Damage;

private float() attackDetails = new float(2);

(SerializeField) private Transform attackHitBoxPos;

private Animator anim;

private PlayerController PC;
private PlayerStats PS;

private void Awake()
{
anim = GetComponent();
PC = GetComponent();
PS = GetComponent();
}
private void Start()
{
anim.SetBool("canAttack", combatEnabled);
}

private void Update()
{
CheckCombatInput();
CheckAttacks();
}

private void CheckCombatInput()
{
if (Input.GetMouseButtonDown(0))
{
if (combatEnabled)
{
gotInput = true;
lastInputTime = Time.time;
}
}
}

private void CheckAttacks()
{
if (gotInput)
{
//perform first attack
if (!isAttacking)
{
gotInput = false;
isAttacking = true;
isFirstAttack = !isFirstAttack;
anim.SetBool("attack1", true);
anim.SetBool("firstAttack", isFirstAttack);
anim.SetBool("isAttacking", isAttacking);
}
}
if (Time.time >= lastInputTime + inputTimer)
{
//wait for new input
gotInput = false;
}
}

//player damages enemy here
private void CheckAttackHitBox()
{
Collider2D() detectedObjects = Physics2D.OverlapCircleAll(attackHitBoxPos.position, attack1Radius, whatIsDamageable);

attackDetails(0) = attack1Damage;
attackDetails(1) = transform.position.x;

foreach (Collider2D collider in detectedObjects)
{
collider.transform.parent.SendMessage("Damage", attackDetails);
Debug.Log("MessageSent");
}
}

//this function is called at the end of the attack animation through an event
private void FinishAttack1()
{
isAttacking = false;
anim.SetBool("isAttacking", isAttacking);
anim.SetBool("attack1", false);
}

//player gets damaged here
private void Damage(float() attackDetails)
{
int direction;

//damage player here using attackDetails(0)
PS.DecreaseHealth(attackDetails(0));

if (attackDetails(1) < transform.position.x)
{
direction = 1;
}
else
{
direction = -1;
}

PC.Knockback(direction);
}

private void OnDrawGizmos()
{
}
}
$$```$$
``````

## gounlimited.to | 5% Lifetime Bounce – NEW PLAYER COMES SOON – Clean advertising – 24-hour payouts – Oldest video host since 2016 | Proxies-free

The GO Unlimited service, which may be known by the name of many of you, is one of the oldest services that specialize in video hosting. The goal of the service has always been to ensure the provision of a secure and stable platform for its long-term partners and to provide functions and features that match their aspirations, and of course to innovate to keep pace with the needs of the industry.

GO Unlimited, 2020

In 2020, we are trying to move traditional video hosting services to integrated solutions in this area by providing advanced tools, some of which have not previously been proposed or used in this area to keep up with the times Development in this industry and its requirements included.

————————————————– ————

Our goal

Our primary goal is to ensure the long-term stability of the platform and the stability of the services that the tools provide to their partners. We work in GO Unlimited based on long-term, not short, plans to ensure the opportunity to work many years and to successfully meet our partners' aspirations and aspirations.

Our work since 2016 and our achievements are proof of this goal that we strive for. We will continue to work towards this goal.

If you have any suggestions or inquiries, we are always happy to receive them.

## 2d – How do I replicate my rockets and follow the player as well as the game "Go Plane"?

I'm trying to create a clone from https://play.google.com/store/apps/details?id=io.voodoo.goplane1&hl=de
or "Go Plane" and I was wondering how to follow this type of missile that the player can dodge by moving away from it. Any help? Thank you in advance! : D.

CODE FOR PLAYERS

``````public float moveSpeed;
Rigidbody2D myBody;
protected Joystick joystick;

void Start()
{
joystick = FindObjectOfType();
}

// Update is called once per frame
void Update()
{
myBody = GetComponent();

myBody.velocity = new Vector2(joystick.Horizontal * moveSpeed, joystick.Vertical * moveSpeed);
}
``````

CODE FOR RISSILES

``````public float acceleration = 1.0f;
public float maxSpeed = 5.0f;

public float speed;
public float distance;

private Transform Player;

void Start()
{
Player = GameObject.FindGameObjectWithTag("Player").GetComponent();
}
void Update()
{
if (Vector3.Distance(transform.position, Player.position) > distance)
{
speed += acceleration * Time.deltaTime;

transform.position = Vector3.MoveTowards(transform.position, Player.position, speed * Time.deltaTime);

if (speed > maxSpeed)
speed = maxSpeed;
}
}
``````

## Unity – I created code that allows you to fall, but the player can fall when falling, which makes them "fall indefinitely".

So I created a code that I can use to crash, but the problem with the code is that when I fall, I can fall when I fall, which causes the player to fall forever. How do I solve this? Here is my code (take it with you if the code is long, but the essential parts are the ones called hyphen, so you can ignore those that are included like jumping or climbing or wall jumping) (even if you are I. Wonder if I set the dash time to 0.2, the dash speed to 25 and the dash cooldown in the inspector to 2.5.

``````using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{

private float movementInputDirection;
private float jumpTimer;
private float turnTimer;
private float wallJumpTimer;
private float dashTimeLeft;
private float lastImageXpos;
private float lastDash = -100f;

private int amountOfJumpsLeft;
private int facingDirection = 1;
private int lastWallJumpDirection;

private bool isFacingRight = true;
private bool isWalking;
private bool isGrounded;
private bool isTouchingWall;
private bool isWallSliding;
private bool canNormalJump;
private bool canWallJump;
private bool isAttemptingToJump;
private bool checkJumpMultiplier;
private bool canMove;
private bool canFlip;
private bool hasWallJumped;
private bool isTouchingLedge;
private bool canClimbLedge = false;
private bool ledgeDetected;
private bool isDashing;
public float dashTime;
public float dashSpeed;
public float distanceBetweenImages;
public float dashCoolDown;

private Rigidbody2D rb;
private Animator anim;

public int amountOfJumps = 1;

public float movementSpeed = 10.0f;
public float jumpForce = 16.0f;
public float wallCheckDistance;
public float wallSlideSpeed;
public float movementForceInAir;
public float airDragMultiplier = 0.95f;
public float variableJumpHeightMultiplier = 0.5f;
public float wallHopForce;
public float wallJumpForce;
public float jumpTimerSet = 0.15f;
public float turnTimerSet = 0.1f;
public float wallJumpTimerSet = 0.5f;

public float ledgeClimbXOffset1 = 0f;
public float ledgeClimbYOffset1 = 0f;
public float ledgeClimbXOffset2 = 0f;
public float ledgeClimbYOffset2 = 0f;

public Vector2 wallHopDirection;
public Vector2 wallJumpDirection;

private Vector2 ledgePosBot;
private Vector2 ledgePos1;
private Vector2 ledgePos2;

public Transform groundCheck;
public Transform wallCheck;
public Transform ledgeCheck;

// Start is called before the first frame update
void Start()
{
rb = GetComponent();
anim = GetComponent();
amountOfJumpsLeft = amountOfJumps;
wallHopDirection.Normalize();
wallJumpDirection.Normalize();
}

// Update is called once per frame
void Update()
{
CheckInput();
CheckMovementDirection();
UpdateAnimations();
CheckIfCanJump();
CheckIfWallSliding();
CheckJump();
CheckLedgeClimb();
CheckDash();
}

private void FixedUpdate()
{
ApplyMovement();
CheckSurroundings();
}

private void CheckIfWallSliding()
{
if (isTouchingWall && movementInputDirection == facingDirection && rb.velocity.y < 0 && !canClimbLedge)
{
isWallSliding = true;
}
else
{
isWallSliding = false;
}
}

private void CheckSurroundings()
{

isTouchingWall = Physics2D.Raycast(wallCheck.position, transform.right, wallCheckDistance, whatIsGround);

isTouchingLedge = Physics2D.Raycast(ledgeCheck.position, transform.right, wallCheckDistance, whatIsGround);

if (isTouchingWall && !isTouchingLedge && !ledgeDetected)
{
ledgeDetected = true;
ledgePosBot = wallCheck.position;
}
}

private void CheckIfCanJump()
{
if (isGrounded && rb.velocity.y <= 0.01f)
{
amountOfJumpsLeft = amountOfJumps;
}

if (isTouchingWall)
{
checkJumpMultiplier = false;
canWallJump = true;
}

if (amountOfJumpsLeft <= 0)
{
canNormalJump = false;
}
else
{
canNormalJump = true;
}

}

private void CheckLedgeClimb()
{
if (ledgeDetected && !canClimbLedge)
{
canClimbLedge = true;

if (isFacingRight)
{
ledgePos1 = new Vector2(Mathf.Floor(ledgePosBot.x + wallCheckDistance) - ledgeClimbXOffset1, Mathf.Floor(ledgePosBot.y) + ledgeClimbYOffset1);
ledgePos2 = new Vector2(Mathf.Floor(ledgePosBot.x + wallCheckDistance) + ledgeClimbXOffset2, Mathf.Floor(ledgePosBot.y) + ledgeClimbYOffset2);
}
else
{
ledgePos1 = new Vector2(Mathf.Ceil(ledgePosBot.x - wallCheckDistance) + ledgeClimbXOffset1, Mathf.Floor(ledgePosBot.y) + ledgeClimbYOffset1);
ledgePos2 = new Vector2(Mathf.Ceil(ledgePosBot.x - wallCheckDistance) - ledgeClimbXOffset2, Mathf.Floor(ledgePosBot.y) + ledgeClimbYOffset2);
}

canMove = false;
canFlip = false;

anim.SetBool("canClimbLedge", canClimbLedge);
}

if (canClimbLedge)
{
transform.position = ledgePos1;
}
}

public void FinishLedgeClimb()
{
canClimbLedge = false;
transform.position = ledgePos2;
canMove = true;
canFlip = true;
ledgeDetected = false;
anim.SetBool("canClimbLedge", canClimbLedge);
}

private void CheckMovementDirection()
{
if (isFacingRight && movementInputDirection < 0)
{
Flip();
}
else if (!isFacingRight && movementInputDirection > 0)
{
Flip();
}

if (rb.velocity.x != 0)
{
isWalking = true;
}
else
{
isWalking = false;
}
}

private void UpdateAnimations()
{
anim.SetBool("IsWalking", isWalking);
anim.SetBool("isGrounded", isGrounded);
anim.SetFloat("yVelocity", rb.velocity.y);
anim.SetBool("isWallSliding", isWallSliding);
}

private void CheckInput()
{
movementInputDirection = Input.GetAxisRaw("Horizontal");

if (Input.GetButtonDown("Jump"))
{
if (isGrounded || (amountOfJumpsLeft > 0 && !isTouchingWall))
{
NormalJump();
}
else
{
jumpTimer = jumpTimerSet;
isAttemptingToJump = true;
}
}

if (Input.GetButtonDown("Horizontal") && isTouchingWall)
{
if (!isGrounded && movementInputDirection != facingDirection)
{
canMove = false;
canFlip = false;

turnTimer = turnTimerSet;
}
}

if (turnTimer >= 0)
{
turnTimer -= Time.deltaTime;

if (turnTimer <= 0)
{
canMove = true;
canFlip = true;
}
}

if (checkJumpMultiplier && !Input.GetButton("Jump"))
{
checkJumpMultiplier = false;
rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * variableJumpHeightMultiplier);
}

if (Input.GetButtonDown("Dash"))
{
AttemptToDash();
}
}

private void AttemptToDash()
{
isDashing = true;
dashTimeLeft = dashTime;
lastDash = Time.time;

PlayerAfterImagePool.Instance.GetFromPool();
lastImageXpos = transform.position.x;
}

private void CheckDash()
{
if (isDashing)
{
if (dashTimeLeft > 0)
{
canMove = false;
canFlip = false;
rb.velocity = new Vector2(dashSpeed * facingDirection, 0);
dashTimeLeft -= Time.deltaTime;

if (Mathf.Abs(transform.position.x - lastImageXpos) > distanceBetweenImages)
{
PlayerAfterImagePool.Instance.GetFromPool();
lastImageXpos = transform.position.x;
}
}
if (dashTimeLeft <= 0 || isTouchingWall)
{
isDashing = false;
canMove = true;
canFlip = true;
}
}
}

private void CheckJump()
{
if (jumpTimer > 0)
{
//WallJump
if (!isGrounded && isTouchingWall && movementInputDirection != 0 && movementInputDirection != facingDirection)
{
WallJump();
}
else if (isGrounded)
{
NormalJump();
}
}

if (isAttemptingToJump)
{
jumpTimer -= Time.deltaTime;
}

if (wallJumpTimer > 0)
{
if (hasWallJumped && movementInputDirection == -lastWallJumpDirection)
{
rb.velocity = new Vector2(rb.velocity.x, 0.0f);
hasWallJumped = false;
}
else if (wallJumpTimer <= 0)
{
hasWallJumped = false;
}
else
{
wallJumpTimer -= Time.deltaTime;
}
}
}

private void NormalJump()
{
if (canNormalJump)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
amountOfJumpsLeft--;
jumpTimer = 0;
isAttemptingToJump = false;
checkJumpMultiplier = true;
}
}

private void WallJump()
{
if (canWallJump)
{
amountOfJumpsLeft = 1;
rb.velocity = new Vector2(rb.velocity.x, 0.0f);
isWallSliding = false;
amountOfJumpsLeft = amountOfJumps;
amountOfJumpsLeft--;
Vector2 forceToAdd = new Vector2(wallJumpForce * wallJumpDirection.x * movementInputDirection, wallJumpForce * wallJumpDirection.y);
jumpTimer = 0;
isAttemptingToJump = false;
checkJumpMultiplier = true;
turnTimer = 0;
canMove = true;
canFlip = true;
hasWallJumped = true;
wallJumpTimer = wallJumpTimerSet;
lastWallJumpDirection = -facingDirection;
}
}

private void ApplyMovement()
{

if (!isGrounded && !isWallSliding && movementInputDirection == 0)
{
rb.velocity = new Vector2(rb.velocity.x * airDragMultiplier, rb.velocity.y);
}
else if (canMove)
{
rb.velocity = new Vector2(movementSpeed * movementInputDirection, rb.velocity.y);
}

if (isWallSliding)
{
if (rb.velocity.y < -wallSlideSpeed)
{
rb.velocity = new Vector2(rb.velocity.x, -wallSlideSpeed);
}
}
}

private void Flip()
{
if (!isWallSliding && canFlip)
{
facingDirection *= -1;
isFacingRight = !isFacingRight;
transform.Rotate(0.0f, 180.0f, 0.0f);
}
}

private void OnDrawGizmos()
{

Gizmos.DrawLine(wallCheck.position, new Vector3(wallCheck.position.x + wallCheckDistance, wallCheck.position.y, wallCheck.position.z));
}
}

$$```$$
``````

## 2d – Collision Player and Tilemap Unity

I am a student in Austria. I am working on a school project where we have to do our own first game with unity. Since it is the first time that I am using Unity, I am constantly encountering problems. I have already fixed most of them. But this problem has bogged me down for a few days now. I am very sorry that I have used so many pictures. Maybe there is some information in the picture that I did not give you. The name of the collision card is "FirstLayer_Col".

I have so far. My card is quite big. I used the tile palette to paint it. I also used different types of layers. The base layer consists mainly of grass or water. I put the trees on top, which can be seen in the next picture. I created a new tilemap to make it a collision tilemap. I took a random tile and put it on everything I want to have a collision with.

I changed the order of the level to 10 for the collision tilemap so I can see where to put the tile to keep the player from going over or through it. After placing the tile where I wanted it, I changed the order of the layer back to 0 so that I could no longer see it. I don't know if that's a problem or not. I haven't found any other solution that worked for me. The collision tilemap has a tilemap collider and the player named "South_0" has a box collider and rigid body due to the sprite I used. Every collider is a 2D.

After starting the application with the collision level at 10, I can go through it and stand where the collision should be because there is no collision. If I change the order of the level to 0 so that it is not visible, I can go to the tree, but then my game starts to tremble and the player turns. Then there is a kind of collision, but when I try to go through it, my game starts to tremble very much and then my player can stand in the middle of the tree because there is no collision. It looks very "flawed" and the player turns in every direction. I can't figure out how to do the collision to prevent the player from entering my tilemap collision field without driving the player crazy and shaking the entire screen. I just want the player to stop in front of it so there is no way to listen to it. I hope I explained my problem so you can understand it. Maybe it's just a small, small solution, but I couldn't find a solution. The last picture shows what my player looks like after I hit the tree with the collision card on level 0. The player shouldn't turn and just go up, down, left, right.