15.02.2012, 19:25
Ich bin verzweifelt... ^^
Ich habe heute angefangen ein Spiel zu scripten, ich bin auch weit gekommen aber jetzt habe ich ein Problem für welches ich keinen Lösungsansatz habe...
Also so sieht das Spiel aus:
Es ist Tic Tac Toe ^^
Aber wenn ich die X Taste drücke erscheint das Bild mit dem Kreuz nur sehr kurz und verschwindet wieder....
Ich hoffe ihr könnt mir helfen
mfg
Ich habe heute angefangen ein Spiel zu scripten, ich bin auch weit gekommen aber jetzt habe ich ein Problem für welches ich keinen Lösungsansatz habe...
Also so sieht das Spiel aus:
Es ist Tic Tac Toe ^^
Aber wenn ich die X Taste drücke erscheint das Bild mit dem Kreuz nur sehr kurz und verschwindet wieder....
Ich hoffe ihr könnt mir helfen
Spoiler da über 200 Zeilen ^^ (anzeigen)
Code:
--TicTacToe PSP
--Field mode: 0 = neutral, 1 = Owned by Player 1, 2 = Owned by Player 2
field_1={x=140, y=35, mode=0}
field_1_mode = 0
field_2={x=215, y=35, mode=0}
field_2_mode = 0
field_3={x=295, y=35, mode=0}
field_3_mode = 0
field_4={x=140, y=110, mode=0}
field_4_mode = 0
field_5={x=215, y=110, mode=0}
field_5_mode = 0
field_6={x=295, y=110, mode=0}
field_6_mode = 0
field_7={x=140, y=190, mode=0}
field_7_mode = 0
field_8={x=215, y=190, mode=0}
field_8_mode = 0
field_9={x=295, y=190, mode=0}
field_9_mode = 0
black = Color.new(0,0,0)
white = Color.new(255,255,255)
current_field_value = 1
current_field = field_1
current_field_mode = field_1_mode
current_field_x = field_1.x
current_field_y = field_1.y
current_player = 1
field = Image.load("field.png")
cross = Image.load("cross.png")
circle = Image.load("circle.png")
marked = Image.load("marked.png")
player_1_won = Image.load("player_1_won.png")
player_2_won = Image.load("player_2_won.png")
while true do
pad = Controls.read()
if pad:right() and current_field_value < 9 then
current_field_value = current_field_value + 1
System.sleep(400)
end
if pad:left() and current_field_value > 1 then
current_field_value = current_field_value - 1
System.sleep(400)
end
if pad:down() and current_field_value < 7 then
current_field_value = current_field_value + 3
System.sleep(400)
end
if pad:up() and current_field_value > 3 then
current_field_value = current_field_value - 3
System.sleep(400)
end
if current_field_value == 1 then
current_field = field_1
current_field_x = field_1.x
current_field_y = field_1.y
current_field_mode = field_1_mode
end
if current_field_value == 2 then
current_field = field_2
current_field_x = field_2.x
current_field_y = field_2.y
current_field_mode = field_2_mode
end
if current_field_value == 3 then
current_field = field_3
current_field_x = field_3.x
current_field_y = field_3.y
current_field_mode = field_3_mode
end
if current_field_value == 4 then
current_field = field_4
current_field_x = field_4.x
current_field_y = field_4.y
current_field_mode = field_4_mode
end
if current_field_value == 5 then
current_field = field_5
current_field_x = field_5.x
current_field_y = field_5.y
current_field_mode = field_5_mode
end
if current_field_value == 6 then
current_field = field_6
current_field_x = field_6.x
current_field_y = field_6.y
current_field_mode = field_6_mode
end
if current_field_value == 7 then
current_field = field_7
current_field_x = field_7.x
current_field_y = field_7.y
current_field_mode = field_7_mode
end
if current_field_value == 8 then
current_field = field_8
current_field_x = field_8.x
current_field_y = field_8.y
current_field_mode = field_8_mode
end
if current_field_value == 9 then
current_field = field_9
current_field_x = field_9.x
current_field_y = field_9.y
current_field_mode = field_9_mode
end
screen:blit(0,0,field,true)
screen:print(15,11,"Player "..current_player,black)
if current_field_mode == 0 then
screen:blit(current_field_x,current_field_y,marked,true )
end
if pad:cross() and oldpad:cross() ~= pad:cross() and current_player == 1 then
screen:blit(current_field_x,current_field_y,cross,true)
current_field_mode = current_field_mode + 1
current_player = current_player + 1
screen.flip()
end
if pad:cross() and oldpad:cross() ~= pad:cross() and current_player == 2 then
screen:blit(current_field_x,current_field_y,circle,true )
current_field_mode = current_field_mode + 2
current_player = current_player - 1
screen.flip()
end
--Case 1: Player 1 won the game
if field_1.mode == 1 and field_2.mode == 1 and field_3.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
if field_4.mode == 1 and field_5.mode == 1 and field_6.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
if field_7.mode == 1 and field_8.mode == 1 and field_9.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
if field_1.mode == 1 and field_5.mode == 1 and field_9.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
if field_7.mode == 1 and field_5.mode == 1 and field_3.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
if field_2.mode == 1 and field_5.mode == 1 and field_8.mode == 1 then
screen:clear(white)
screen:blit(0,0,player_1_won,true)
System.sleep(5000)
System.exit()
end
--Case 2: Player 2 won the game
if field_1.mode == 2 and field_2.mode == 1 and field_3.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
if field_4.mode == 2 and field_5.mode == 1 and field_6.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
if field_7.mode == 2 and field_8.mode == 2 and field_9.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
if field_1.mode == 2 and field_5.mode == 2 and field_9.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
if field_7.mode == 2 and field_5.mode == 2 and field_3.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
if field_2.mode == 2 and field_5.mode == 2 and field_8.mode == 2 then
screen:clear(white)
screen:blit(0,0,player_2_won,true)
System.sleep(5000)
System.exit()
end
screen.waitVblankStart()
screen.flip()
oldpad = pad
end