Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Graphics 800, 600, 16, 2
- SetBuffer BackBuffer()
- player_x = 590
- player_y = 440
- player = LoadImage("Bär.jpeg") ;füge hier ein bild ein, dass im selben verzeichnis liegt wie diese datei // Format "<Bildname>.<Bildtyp>" keine GIF
- player_height = 50
- player_width = 50
- enemy_x = 604
- enemy_y = 503
- enemy = LoadImage("Ente.jpg") ;füge hier ein zweites ein
- enemy_height = 50
- enemy_width = 50
- player_move_right = False
- player_move_left = False
- player_move_up = False
- player_move_down = False
- hit_right = False
- hit_left = False
- hit_up = False
- hit_down = False
- player_x_speed = 1
- player_y_speed = 1
- ResizeImage player, player_width, player_height ;ändert bildgröße
- ResizeImage enemy, enemy_width, enemy_height
- Repeat ;Hauptschleife
- Cls
- DrawImage player, player_x, player_y ;zeichnet Bild
- DrawImage enemy, enemy_x, enemy_y
- If Not ImagesOverlap(player, player_x+player_x_speed,player_y, enemy, enemy_x, enemy_y) Then player_move_right = True ;kann er nach rechts gehen?
- If Not ImagesOverlap(player, player_x-player_x_speed,player_y, enemy, enemy_x, enemy_y) Then player_move_left = True
- If Not ImagesOverlap(player, player_x,player_y+player_y_speed, enemy, enemy_x, enemy_y) Then player_move_down = True
- If Not ImagesOverlap(player, player_x,player_y-player_y_speed, enemy, enemy_x, enemy_y) Then player_move_up = True
- If KeyDown(203) And player_move_left = True Then player_x = player_x - player_x_speed : player_x_speed = player_x_speed + 1 ;nach links bewegen wenn linke pfeiltaste gedrückt
- If KeyDown(205) And player_move_right = True Then player_x = player_x + player_x_speed : player_x_speed = player_x_speed + 1
- If KeyDown(200) And player_move_up = True Then player_y = player_y - player_y_speed : player_y_speed = player_y_speed + 1
- If KeyDown(208) And player_move_down = True Then player_y = player_y + player_y_speed : player_y_speed = player_y_speed + 1
- ;If KeyDown(205) And player_move_right = False Then player_x = player_x + Abs( enemy_x - player_x) - 1 ;Soll Player maximal herankommen lassen, vielleicht auch mit For-Schleife machbar //gelöst
- If ImagesOverlap(player, player_x+player_x_speed,player_y, enemy, enemy_x, enemy_y) Then hit_right = True ;gibt es einen kontakt beim nach rechts bewegen?
- If ImagesOverlap(player, player_x-player_x_speed,player_y, enemy, enemy_x, enemy_y) Then hit_left = True
- If ImagesOverlap(player, player_x,player_y+player_y_speed, enemy, enemy_x, enemy_y) Then hit_down = True
- If ImagesOverlap(player, player_x,player_y-player_y_speed, enemy, enemy_x, enemy_y) Then hit_up = True
- hit_right_distance = Abs(enemy_x - (player_x+player_width)) ;abstand zwischen linkem rand des feindbildes und rechtem rand des playerbildes
- hit_left_distance = Abs(enemy_x+enemy_width - (player_x))
- hit_down_distance = Abs(enemy_y - (player_y+player_height))
- hit_up_distance = Abs(enemy_y+enemy_height - (player_y))
- If hit_right = True Then
- If hit_right_distance < player_x_speed Then player_x = player_x + hit_right_distance ;bewege player bis direkt an den rand des gegners, sodass keine lücken entstehen bei player_x_speed > 1 oder player_y_speed > 1
- EndIf
- If hit_down = True Then
- If hit_down_distance < player_y_speed Then player_y = player_y + hit_down_distance
- EndIf
- If hit_left = True Then
- If hit_left_distance < player_x_speed Then player_x = player_x - hit_left_distance
- EndIf
- If hit_up = True Then
- If hit_up_distance < player_y_speed Then player_y = player_y - hit_up_distance
- EndIf
- If hit_right = True Then Text 0, 0, "from se left" ;etwas verwirrend das hit_right bedeutet, dass der player von links kommend auf den feind trifft
- If hit_left = True Then Text 0, 0, "from se right"
- If hit_up = True Then Text 0, 0, "from below"
- If hit_down = True Then Text 0, 0, "from se top"
- ;setze alles zurück
- player_move_right = False
- player_move_left = False
- player_move_up = False
- player_move_down = False
- hit_right = False
- hit_up = False
- hit_left = False
- hit_down = False
- If player_x_speed > 2 Then player_x_speed = 2 ;setze maximale geschwindigkeiten, am besten statt einem festen wert eine variable verwenden, bspw. max_speed_x / max_speed_y
- If player_y_speed > 2 Then player_y_speed = 2
- Flip
- Until KeyHit(1)
- End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement