Constantin
Anmeldungsdatum: 31.08.2007 Beiträge: 36
|
Verfasst am: 01.03.2008, 20:52 Titel: [Win] [Game] Pong |
|
|
Hi,
ich hab ein primitives Pong-Spiel programmiert und bin gespannt, was ihr davon haltet. Der Gegner ist eine KI, die nicht leicht zu besiegen ist.
Der Schwierigkeitsgrad ist "cpu_racket_speed".
Bin mir nicht sicher, ob es auf Linux geht, habs noch nicht getestet.
Bitte keine Blöden Kommtentare, wenn ich die Variablen etwas umständlich benutze.
Achtet darauf, dass es im Vollbildschirmmodus ausgeführt wird und dass
man Escape drücken muss, um es zu beenden.
Viel spaß beim spielen.
Downloadlink als Win-RAR Datei:
http://rapidshare.de/files/38897366/pong.rar.html
---
Code: |
#define player_1 "Player"
#define player_2 "CPU"
screen 19, 32, 2, 1
screenset 0,1
randomize timer
sleep 1000
dim shared as integer mx, my, old_my
dim shared as integer racket_pos, racket_length
racket_length = 50
dim shared as double cpu_racket_pos, cpu_racket_length, cpu_racket_speed
cpu_racket_pos = 280
cpu_racket_length = 50
cpu_racket_speed = 25'Schwierigkeitsgrad
dim shared as integer ball_pos_x, ball_pos_y
dim shared as double ball_velocity_x, ball_velocity_y
ball_pos_x = 400
ball_pos_y = 300
ball_velocity_x = 15
ball_velocity_y = 6
dim shared as integer radius
radius = 5
dim shared as integer zufall
dim shared as integer score_player, score_cpu
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
setmouse 50, 300
do
color &hFFFFFF
old_my = my
getmouse mx, my
setmouse 50, my, 0
'Berechnen
racket_pos = my
ball_pos_x += ball_velocity_x
ball_pos_y += ball_velocity_y
ball_velocity_x *= 1.00125
ball_velocity_y *= 1.00075
if ball_pos_y > cpu_racket_pos then
if ball_velocity_x > 0 then
cpu_racket_pos += cpu_racket_speed
zufall = rnd *4
else
select case zufall
case 0
cpu_racket_pos -= cpu_racket_speed / 4
case 1
cpu_racket_pos -= cpu_racket_speed / 5
case 2
cpu_racket_pos += cpu_racket_speed / 2
case 3
cpu_racket_pos += cpu_racket_speed
case 4
cpu_racket_pos += cpu_racket_speed / 3
end select
end if
end if
if ball_pos_y < cpu_racket_pos then
if ball_velocity_x > 0 then
cpu_racket_pos -= cpu_racket_speed
zufall = rnd *4
else
select case zufall
case 0
cpu_racket_pos += cpu_racket_speed / 4
case 1
cpu_racket_pos += cpu_racket_speed / 5
case 2
cpu_racket_pos -= cpu_racket_speed / 2
case 3
cpu_racket_pos -= cpu_racket_speed
case 4
cpu_racket_pos -= cpu_racket_speed / 3
end select
end if
end if
if ball_pos_x < 55 then
if ball_pos_y < racket_pos+racket_length then
if ball_pos_y > racket_pos-racket_length then
ball_velocity_x = ball_velocity_x * (-1)
end if
end if
end if
if ball_pos_x < 0 then
score_cpu += 1
ball_pos_x = 400
ball_pos_y = 300
ball_velocity_x = 15
ball_velocity_y = 6
cls
color &hFF0000
? ,,,score_player ;" : "; score_cpu
screencopy
sleep 1000
end if
if ball_pos_x > 750 then
if ball_pos_y < cpu_racket_pos+cpu_racket_length then
if ball_pos_y > cpu_racket_pos-cpu_racket_length then
ball_velocity_x = ball_velocity_x * (-1)
end if
end if
end if
if ball_pos_x > 800 then
score_player += 1
ball_pos_x = 400
ball_pos_y = 300
ball_velocity_x = 15
ball_velocity_y = 6
cls
color &h00FF00
? ,,,score_player ;" : "; score_cpu
screencopy
sleep 1000
end if
if ball_pos_y < 0 then
ball_velocity_y = ball_velocity_y * (-1)
end if
if ball_pos_y > 600 then
ball_velocity_y = ball_velocity_y * (-0.95)
end if
' Zeichnen
line(50,racket_pos-racket_length)-(50, racket_pos+racket_length)
line(51,racket_pos-racket_length)-(51, racket_pos+racket_length)
line(52,racket_pos-racket_length)-(52, racket_pos+racket_length)
line(750,cpu_racket_pos-cpu_racket_length)-(750, cpu_racket_pos+cpu_racket_length)
line(749,cpu_racket_pos-cpu_racket_length)-(749, cpu_racket_pos+cpu_racket_length)
line(748,cpu_racket_pos-cpu_racket_length)-(748, cpu_racket_pos+cpu_racket_length)
circle(ball_pos_x, ball_pos_y), radius,,,,,F
locate 1, 40
? score_player; " : " ;score_cpu
screensync
screencopy
cls
loop until multikey(&h01)
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'end
|
|
|